본문 바로가기
Develop/Spring

[4.스프링+MyBatis_MySQL의 설정]5.MyBatis연결

by jaekk 2018. 8. 13.

1. SqlSessionFactory 객체 설정(Connection 생성&처리, SQL실행)


DataSource가 정상적으로 설정된 이후 

MyBatis와 MySQL을 연동해야함


1. SqlSessionFactory 객체 설정

MyBatis <-> 스프링 연동 : SqlSessionFactory객체 이용


SqlSessionFactory

DB연결(Connection 생성&처리),  SQL실행 가능


root-context.xml에 sqlSessionFactory bean 추가


1
2
3
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
    </bean>
cs


2. mybatis 설정 파일 생성(mybatis-config.xml)

MyBatis: SQL Mapping 프레임워크 

mybatis-config.xml: mybatis 설정 파일


src/main/resources내에 파일 생성




1
2
3
4
5
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
 
</configuration>
cs


3. mybatis설정 파일 스프링 등록

스프링 동작시 같이 실행되도록 root-context.xml에 bean등록 


1
<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
cs


4. MyBatis 연결 테스트


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
31
32
33
34
35
package org.zerock.web;
 
import javax.inject.Inject;
 
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/**/root-context.xml" })
 
public class MyBatisTest {
 
    @Inject
    private SqlSessionFactory sqlFactory;
 
    @Test
    public void testFactory() {
        System.out.println("sqlFactory: "+sqlFactory);
 
    }
 
    @Test
    public void testSession() throws Exception {
        try (SqlSession session = sqlFactory.openSession()) {
            System.out.println("session:"+session);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
 
cs


댓글