마이바티스 프로그래밍 - 이동국 저
JDBC
에서 데이터베이스 연결을 생성하는 코드는 마이바티스에서 다음과 같은 두 가지로 나뉜다.
JDBC
드라이버 클래스명과 연결을 위한 URL 정보 및 계정 정보는 마이바티스에서 설정 파일이 된다.SQL
을 사용해서 데이터베이스와 연동하는 세부적인 코드도 마이바티스 코드로 변환하는 데는 다음과 같은 두 가지 과정을 거친다.
SQL
은 마이바티스의 매핑 구문으로 만든다.데이터베이스 자원을 해제하는 작업은 마이바티스에서 SqlSession
객체의 close
메소드를 호출하는 것으로 바뀐다.
<?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>
<typeAliases>
<typeAlias type="ldg.mybatis.model.Comment" alias="Comment" />
</typeAliases>
<environments default="development">
<environment id="development">
<!--1 start-->
<transactionManager type="JDBC" />
<!--1 end-->
<!--2 start-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis_example" />
<property name="username" value="mybatis" />
<property name="password" value="mybatis" />
</dataSource>
<!--2 end-->
</environment>
</environments>
<!--3 start-->
<mappers>
<mapper resource="ldg/mybatis/repository/mapper/CommentMapper.xml" />
</mappers>
<!--3 end-->
</configuration>
1️⃣ 트랜잭션 관리자 : JDBC 코드를 대체하기 때문에 JDBC로 설정
2️⃣ 데이터베이스 설정
3️⃣ 매퍼 정보 설정 : SQL
을 선언해둔 XML
이나 인터페이스
형태의 매퍼 위치를 지정
private SqlSessionFactory getSqlSessionFactory() {
String resource = "mybatis-config.xml";
InputStream inputStream;
try {
// 1 start
inputStream = Resources.getResourceAsStream(resource);
// 1 end
} catch (IOException e) {
throw new IllegalArgumentException(e);
}
// 2 start
return new SqlSesionFactoryBuilder().build(inputStream);
// 2 end
}
1️⃣ 마이바티스 설정 정보를 가진 객체 생성
2️⃣ SqlSessionFactory 객체 생성
SqlSessionFactory
객체가 마이바티스의 전반적인 정보를 가지고 제어
SqlSessionFactory
객체가 마이바티스의 전반적인 정보를 갖는 특성으로 인해 이 객체는 애플리케이션 내에서 한 개만 생성돼야 한다.
-> 설정 파일을 로드해 SqlSessionFactory
객체를 생성하는 것으로 JDBC
코드의 데이터베이스 연결 객체를 생성한 것과 유사한 작업을 한 셈이다.