[Spring] DAO와 MyBatis 연결

     

     

    Spring, DAO와 MyBatis 연결

     

     

     

      MyBatis 설정하기 Maven 불러오기

    <!--https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.5</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.3.2</version>
    </dependency>

     MyBatis를 사용하기 위해서는 해당 Maven 설정이 필요하다.

     

     

    <!-- DBMS -->
    <bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <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>
    
    <!-- SqlSessionFactory 객체 주입(마이바티스 세팅) -->
    <bean id="sqlSessionFactory"
        class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="transactionFactory">
            <bean
                class="org.apache.ibatis.transaction.managed.ManagedTransactionFactory" />
        </property>
        <property name="configLocation"
            value="classpath:/mybatis-config.xml"></property>
        <property name="mapperLocations"
            value="classpath:/mappers/**/*Mapper.xml" />
    </bean>
    <!-- SqlSession 객체 주입 -->
    <bean id="sqlSession"
        class="org.mybatis.spring.SqlSessionTemplate"
        destroy-method="clearCache">
        <constructor-arg name="sqlSessionFactory"
            ref="sqlSessionFactory"></constructor-arg>
    </bean>
    <!-- mybatis mapper interface bean을 자동으로 검색 -->
    <mybatis-spring:scan
        base-package="com.meari.model" />

    MyBatis를 사용하기 위한 root-context.xml 설정이다.

    configLocation은 Mapper에 사용하기 위한  설정값을 저장하는 곳

    mapperLocations은 Mapper(SQL)이 담겨 있는 .xml의 위치가 담겨 있는 곳

     

    두 곳을 잘 설정 해두었다면 MyBatis 설정은 끝났다.

     

      MyBatis 사용하기

    Mapper SQL을 작성하는 곳 위에 namespace 설정을 한다.

     여기서 namespace를 설정해서, Spring이 Java와 xml이 서로 연결되도록 설정을 해둔다.

    저 이름은 절대 중복되어서는 안 되며, 하나의 DAO가 하나의 xml과 연결되어야 한다.

     

    JAVA에서 namespace를 설정해야 XML을 찾아간다.

    설정된 NAMEPACE는 다음과 같이 사용된다.

    해당 method는 SELECT문의 2행 이상의 결괏값을 불러올 때 사용한다.

     

     

     

    서로 연결 된 class

    DAO에서 NAMESPACE를 통해서 서로의 위치를 찾아갈 수 있도록 설정이 되어있다.

     

     

      마무리

     DAO는 SPRING에서 활용되는 대표적인 방식 중 하나이다.

    최근에는 Mapper의 활용으로 보이는 빈도수가 적게 사용하는 방법 중 하나이다.

     

    그러나 기본적으로 많이 활용 되는만큼 이 방법 또한 작성해 보았다.

    반응형

    댓글

    Designed by JB FACTORY