오봉이와 함께하는 개발 블로그

Spring - IntelliJ MyBatis 연동 본문

BE/Spring

Spring - IntelliJ MyBatis 연동

오봉봉이 2022. 1. 7. 20:17
728x90

스프링에서 데이터베이스 연동 : MyBatis 사용해서 DB 연동

mac OS BigSur
IntelliJ Ultimate
openjdk 11
아래의 링크에서 만든 프로젝트 사용 중
https://5bong2-develop.tistory.com/153

MyBatis (마이바티스)

  • ORM(Object Relational Mapping : 객체 관계 매핑) 프레임워크
  • 자바에서 JDBC를 이용할 경우 Java 언어와 SQL언어가 한 파일에 존재해서 재사용성이 좋지 않음
    • MyBatis는 JDBC의 이런 단점을 개선하여 SQL 명령어를 별도의 XML 파일에 분리하여 SQL 명령어와 자바 객체를 매핑해주는 기능을 제공
    • SQL 명령어를 재사용
  • MyBatis 특징
    • SQL 명령어를 자바 코드에서 분리하여 별도의 XML 파일에서 관리
    • XML을 매퍼(Mapper)로 부름

IntelliJ Mybatis, JDBC 연결

  • pom.xml 의존성 설정
  • 데이터베이스
    • Spring JDBC 의존성 : spring-jdbc
    • Connection Pool 의존성 : commons-dbcp
    • MySQL 의존성 : mysql-connector-java
  • MyBatis
    • mabatis
    • mybatis-spring

pom.xml

<!-- pom.xml -->
<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.19.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>

    </dependencies>
  • cmd + ; -> Libraries에서 + 클릭 후 Java -> jdbc커넥터.jar 파일 찾아서 등록 -> Artifacts에서 모두 더블클릭해서 등록
  • 프로퍼티 파일 작성 (DB 연결 정보)
    • src/main/resources 폴더에 database 폴더 생성
    • jdbc.properties 파일 생성
    • driverClassName, url, username, password 등록

jdbc.properties

// jdbc.properties
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://ip주소(local에서 사용할 경우 localhost):포트번호/스키마 이름?serverTimezone=UTC
jdbc.username=아이디
jdbc.password=패스워드

root-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <context:property-placeholder location="classpath:database/jdbc.properties" />
    <context:component-scan base-package="com.spring_mvc.mybatis" />
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="classpath:com/spring_mvc/mybatis/**/*.xml" />
    </bean>

</beans>

servlet-context.xml

  • 내용 추가
    <context:component-scan base-package="com.spring_mvc.mybatis" />
728x90

'BE > Spring' 카테고리의 다른 글

Spring - 간단한 예제  (0) 2022.01.11
Spring - IntelliJ MySQL&MyBatis 연동 오류 해결  (0) 2022.01.10
IntelliJ에서 SpringMVC 프로젝트 생성  (0) 2022.01.07
Spring - Controller와 요청 처리  (0) 2022.01.07
Spring - 모델 패턴  (0) 2022.01.06
Comments