[MyBatis] 2. 마이바티스 시작

KIM KYUBIN·2022년 10월 12일
0

MyBatis

목록 보기
2/3

마이바티스 프로그래밍 - 이동국 저

2.1 JDBC 코드 먼저 살펴보기

  • JDBC에서 데이터베이스 연결을 생성하는 코드는 마이바티스에서 다음과 같은 두 가지로 나뉜다.

    • JDBC 드라이버 클래스명과 연결을 위한 URL 정보 및 계정 정보는 마이바티스에서 설정 파일이 된다.
    • 데이터베이스 연결을 생성하는 API 호출은 마이바티스가 제공하는 객체를 생성하는 것으로 바뀐다.
  • SQL을 사용해서 데이터베이스와 연동하는 세부적인 코드도 마이바티스 코드로 변환하는 데는 다음과 같은 두 가지 과정을 거친다.

    • SQL은 마이바티스의 매핑 구문으로 만든다.
    • 데이터베이스 연결에 대한 API 호출은 마이바티스 API를 호출하는 것으로 바뀐다.
  • 데이터베이스 자원을 해제하는 작업은 마이바티스에서 SqlSession 객체의 close 메소드를 호출하는 것으로 바뀐다.


2.2 마이바티스 설정 파일(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>
	<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이나 인터페이스 형태의 매퍼 위치를 지정


2.3 마이바티스 객체 생성하기(SqlSessionFactory)

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 코드의 데이터베이스 연결 객체를 생성한 것과 유사한 작업을 한 셈이다.

profile
상상을 현실로 만들기 위해 노력하는 개발자

0개의 댓글