Programming/Spring

Spring(10) - Mybatis 실습 1 : 기본 세팅

코딩하는 포메라니안 2022. 5. 6. 02:19

1. Mybatis 관련 라이브러리 추가

 

maven을 사용하고 있기 때문에, pom.xml에 아래 코드를 추가한다.

 

1. <properties>태그에 버전 정보를 추가한다.

<properties>
	//...
    <mybatis-version>3.5.9</mybatis-version>
    <mybatis-spring-version>2.0.7</mybatis-spring-version>
</properties>

 

2. <dependencies>태그에 library 불러오는 코드를 추가한다.

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>${mybatis-version}</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>${mybatis-spring-version}</version>
</dependency>

 

 

 

2. DB와 연결하기

 

1. Mybatis 설정 파일 생성하기

1) mybatis-config.xml

2) dbInfo.properties (선택사항)

 

 

 

2. DB 연결 코드 작성하기

<!--mybatis-config.xml-->
<?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>
	<properties resource="dbInfo.properties"/>
	
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="${driver}"/>
				<property name="url" value="${url}"/>
				<property name="username" value="${dbid}"/>
				<property name="password" value="${dbpwd}"/>
			</dataSource>
		</environment>
	</environments>
</configuration>

 

db관련 정보는 가독성을 위해, 별도의 파일에 작성해서 연결해주었다.

파일을 따로 생성하지 않고 값을 바로 작성해도 된다.

#dbInfo.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC&useUniCode=yes&characterEncoding=UTF-8
dbid=myid
dbpwd=mypw

 

 

 

3. Mybatis 설정 파일을 읽어서, DB 연결 관리 객체 생성하기

 

1. DB 연결 관리 객체 파일 생성

close까지 알아서 해주기 때문에, 이전에 썼던 DBUtil은 필요가 없게 된다.

또한, Spring대신 Mybatis에서 DB작업을 하므로 context.xml, root-context.xml에 작성한 DB pool관련 코드도 없어도 된다.

하지만, 테스트를 위해 Mybatis설정이 다 끝나고 삭제하는 걸 권장한다.

 

 

 

2. Mybatis 설정 파일을 읽어서 연결을 관리하는 공장 생성하기

SqlSession은 Connection이라고 보면 되며, factory를 통해 얻어올 수 있다.

public class SqlMapConfig {
	
	private static SqlSessionFactory factory;
	
	static {//블럭 초기화
		try {
			String resource="mybatis-config.xml";
			Reader reader = Resources.getResourceAsReader(resource);//파일 읽기
			factory = new SqlSessionFactoryBuilder().build(reader);
		} catch(IOException e) {
			e.printStackTrace();
		}
	}
	
	public static SqlSession getSqlSession(){
		return factory.openSession();
	}
}

 

 

 

4. Java Code & DB를 연결하는 mapper파일 생성

Java Code에서 mapper에 DB작업을 명령하고, mapper는 SQL문을 실행시켜 값을 반환해준다.

 

1) mapper 파일 생성

 

 

 

2) mybatis설정 파일에 mapper 등록하기

mybatis-config.xml에 mapper를 등록한다.

<configuration>
    ...
    <mappers>
        <mapper resource="member.xml"/>
    </mappers>
</configuration>