티스토리 뷰


MyBatis 


MyBatis는 SQL 맵퍼 라이브러리이다. Spring 프로젝트에서 SQL 처리를 도와주는 형태로 JDBC와 유사하다. 

기존에 JDBC를 이용하여 프로그래밍을 하는 방식에 비해서 MyBatis는 개발자의 부담을 많이 덜어주고 생산성 향상에도 도움이 된다.
기존에 JDBC를 이용하여 프로그래밍을 하는 방식은 프로그램 소스안에 SQL문을 작성하는 방식이었다.

Connection, Statement, ResultSet 등등 안해줘도 된다는 소리

또한 JDBC를 이용하면 프로그램 내부의 소스를 우리가 직접 건들려야 하기때문에 유연성이 떨어진다. 하지만 
MyBatis에서는 SQL을 XML 파일에 작성하기 때문에 SQL의 변환이 자유롭고, 가독성이 좋다는 장점이 있다.

MyBatis 설정하기

스프링 프로젝트에 라이브러리 추가


1.MyBatis 라이브러리 추가

스프링에서 MyBatis를 사용하려면 라이브러리가 필요하다.
우리는 이미 Maven을 이용하여 라이브러리를 관리하기 때문에,라이브러리 추가가 굉장히 쉽다.
pom.xml에 밑에 소스를 추가하면 된다. 

<!-- mybatis -->
  <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.2.2</version>
  </dependency>

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

  <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${org.springframework-version}</version>
  </dependency>

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

여기까지가 공통으로 들어가는 라이브러리고, 사용하는 DB에 따라서 추가할 라이브러리가 약간 다르다. 

2.MySQL을 사용할경우 추가
<!-- mysql -->
   <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.11</version>
   </dependency>

3.Spring 프로젝트의 root-context.xml 파일 수정

aop, context, jdbc, mybatis-spring 네임스페이스 추가하자.
앞서 pom.xml에 라이브러리를 추가 했기 때문에 mybatis-spring와 같은 네임스페이스가 root-context.xml의 Namepaces 항목에 자동으로 보이게 되며, 간단히 클릭후 파일을 저장하면 된다.





이렇게 root-context.xml 의 Namespaces 에서  체크를 해준다음에 저장하면 자동 추가가 된다!!



4.Spring 프로젝트의 root-context.xml에 datasource 설정

root-context.xml파일에 spring jdbc를 이용하여 datasource를 설정하자.
접속하려는 db URL, db user 이름 비밀번호 정보가 필요하다.

 <!-- MySQL DataSource -->
    <bean id="dataSource"
               class="org.apache.commons.dbcp.BasicDataSource">
          <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
          <property name="url" value="jdbc:mysql://localhost:3306/database name?serverTimezone=UTC" />
          <property name="username" value="root" />
          <property name="password" value="root" />
    </bean>    


Spring 프레임워크에 MyBatis 설정 셋팅

5.SqlSessionFactory 객체 설정

root-context.xml 파일에 SqlSessionFactoryBean bean을 추가하자.
SqlSessionFactoryBean는 MyBatis에서 SqlSessionFactory를 생성하는 빈이다.

<!-- MyBatis SqlSessionFactory -->
  <bean id="sqlSessionFactory"
             class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
  </bean>


6.configuration.xml 파일 추가

configuration.xml을 src/main/resources에 추가하자. (나는 mybatis > configuration.xml 이라고 했다.)




이 파일은 SQL Mapping정보등 스프링의 설정과 별도의 MyBatis의 설정 기능을 저장하는 용도의 파일이다.
configuration.xml에 밑에소스 추가하자~
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
<configuration>
     
</configuration>


7.mybatis-config.xml 파일을 root-context.xml 에 추가


방금 생성한 mybatis-config.xml파일이 스프링 프레임워크가 동작할때 주입되게 설정이 필요하다.
root-context.xml의 sqlSessionFactory의 프로퍼티로 mybatis-config.xml을 추가하자.

<!-- MyBatis SqlSessionFactory -->
  <bean id="sqlSessionFactory"
             class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:mybatis/configuration.xml" />
  </bean>


반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함