본문 바로가기

개발/Spring

Spring에서 MyBatis 연동하기

MyBatis란?

개발 프레임워크로 객체지향 언어인 자바의 관계형 데이터 베이스 프로그래밍을 좀더 쉽게 할수 있게 도와준다

 

Spring에서 MyBatis를 사용하기 위해서 연동하는 방법을 알아보자!

 

1. pom.xml에 라이브러리를 넣어준다.

Spring은 Maven을 이용하여 라이브러리를 관리하기 때문에 pom.xml에 dependency를 추가해준다

넣을 라이브러리 : mybatis, mybatis-spring, spring-jdbc, commons-dbcp

원하는 버전을 복사해서 붙여넣어주면 된다! 라이브러리 검색은 아래 주소를 통해 할 수 있다.

 

▼라이브러리 검색하는 곳

https://mvnrepository.com/

 

Maven Repository: Search/Browse/Explore

Key Value Store Last Release on Apr 7, 2019

mvnrepository.com

 

pom.xml 예시)

		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.1</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>


		<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>5.1.6.RELEASE</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>

 

2. DB 종류에 따라서 특정 라이브러리를 추가한다

저는 oracle을 사용하는데 oracle은 repository를 따로 추가해줘야하는 번거로움이 있다

 

오라클 라이브러리 추가 ex)

 

	<dependencies>
    	<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>12.1.0.1</version>
		</dependency>
	</dependencies>
	
	<repositories>
		<repository>
			<id>odysseusinc</id>
			<url>http://repo.odysseusinc.com/artifactory/community-libs-release-local/</url>
		</repository>
	</repositories>

 

Mysql 라이브러리 추가 ex)

 

	<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>8.0.15</version>
	</dependency>

 

 

3. MyBatis와 데이터베이스 연결 설정

노란색상으로 표시한 .xml 파일들을 만들어준다

그 다음 web.xml에서 context-param을 등록해준다

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
		/WEB-INF/spring/appServlet/applicationContext.xml
<!-- 서버가 시작될 때, 해당 위치에 있는 context 파일을 모조리 읽어들이는 것을 뜻함 context-mybatis안에 MyBatis 설정을 담을 것이다 -->
		/WEB-INF/spring/appServlet/context-mybatis.xml
		</param-value>
	</context-param>

 

4) MyBatis 연결 설정을 한다

 

context-mybatis.xml ex) 오라클의 경우!

 

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">

	<!-- 데이터베이스 연결 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
		<property name="url" value="connection url을 확인해 기재 ex)jdbc:oracle:thin:@localhost:1521:xe" />
		<property name="username" value="유저이름" />
		<property name="password" value="비밀번호" />
	</bean>
	
	<!-- mybatis -->
	<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="WEB-INF/spring/sqls/config.xml" />
	</bean>
	
	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg ref="sqlSession"></constructor-arg>
	</bean>
	
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
</beans>

 

 

mysql 경우)

	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://데이터베이스url:포트/스키마?useSSL=false&amp;serverTimezone=UTC" />
		<property name="username" value="사용자이름" />
		<property name="password" value="비밀번호" />
	</bean>
	
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
	</bean>

 

반응형

'개발 > Spring' 카테고리의 다른 글

개발에 유용한 라이브러리  (0) 2020.06.16
#3 스프링 DI(Dependency Injection)  (0) 2020.01.14
#2 @Configuration과 @Bean의 의존 관계  (0) 2020.01.14
#1 Spring?  (0) 2020.01.14
redirect 시 파라미터값 넘기는 방법  (1) 2019.04.17