본문 바로가기
Programming/Spring

[Spring] MyBatis 설정하기

by hongchii 2021. 4. 13.
728x90
반응형

MyBatis는 흔히 SQL 매핑(mapping) 프레임워크로 분류됩니다.

 

 

JDBC 프로그래밍 구조와 MyBatis의 비교

JDBC 프로그래밍 MyBatis
직접 Connection을 맺고 마지막에 close() PerparedStatement 직접 생성 및 처리
PreparedStatement의 setXXX()등에 대한 모든 작업을 개발자가 처리
SELECT의 경우 직접 ResultSet처리
자동으로 Connection close() 가능
MyBatis 내부적으로 PreparedStatement 처리
#{prop}와 같이 속성을 지정하면 내부적으로 자동 처리
리턴 타입을 지정하는 경우 자동으로 객체 생성 및 ResultSet처리

MyBatis는 기존의 SQL을 그대로 활용할 수 있다는 장점이 있고, 진입장벽이 낮아 JDBC의 대안으로 많이 사용합니다.

그리고 스프링프레임워크의 특징 중 하나가 다른 프레임워크들과 연동을 쉽게하는 추가적인 라이브러리들이 많다는 것입니다. MyBatis 역시 mybatis-spring이라는 라이브러리를 통해 쉽게 연동작업을 처리할 수 있습니다.

 


MyBatis 관련 라이브러리 추가 (pom.xml)

		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.6</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>			
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>

spring-jdbc/spring-tx : 스프링에서 데이터베이스 처리와 트랜잭션처리

mybatis/mybatis-spring : MyBatis와 스프링 연동용 라이브러리

 

 


 

 

SQLSessionFactory

 

SQLSession/SQLSessionFactory는 내부적으로 SQLSession을 만들어 내는 MyBatis에서 가장 핵심적인 객체입니다.

SQLSession을 통해서 Connection을 생성하거나 원하는 SQL을 전달하고, 결과를 리턴 받는 구조로 작성합니다.

 

 

SqlSessionFatoryBean을 이용하여 스프링에 SQLSessionFactory를 등록하는 작업.(root-context.xml)

	<!-- SQLSessionFactory -->	
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
	</bean>

 

728x90
반응형

댓글