EMDI는 지금도 개발중

Java : Spring MVC Project (2) - Mybatis(마이바티스) 연동하기 본문

언어/Java

Java : Spring MVC Project (2) - Mybatis(마이바티스) 연동하기

EMDI 2020. 4. 16. 17:35

1. 마이바티스(Mybatis) 정의

개발자가 지정한 SQL, 저장프로시저, 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. MyBatis는 JDBC 코드와 수동으로 세팅하는 파라미터와 결과 매핑을 제거한다. MyBatis는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO를 설정하고 매핑하기 위해 XML과 애노테이션을 사용할 수 있다.

 

2. MyBatis 라이브러리 추가

<!-- MyBatis -->
<dependency> 
    <groupId>org.mybatis</groupId> 
    <artifactId>mybatis</artifactId> 
    <version>3.2.2</version> 
</dependency> 
<dependency> 
    <groupId>org.mybatis</groupId> 
    <artifactId>mybatis-spring</artifactId> 
    <version>1.2.0</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-jdbc</artifactId> 
    <version>${org.springframework-version}</version> 
</dependency> 
<dependency> 
    <groupId>commons-dbcp</groupId> 
    <artifactId>commons-dbcp</artifactId> 
    <version>1.4</version> 
</dependency>

pom.xml 파일에 들어가서 위와 같이 마이바티스 라이브러리를 추가합니다.

 

3. 사용할 DB 라이브러리 추가

<!-- SQLite -->
<dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.15.1</version>
</dependency>  

<!-----------------------------------밑에서부터는 본인 사용할 DB에 맞게 알아서 사용-------------------------------------------------->
<!-- MySQL -->
<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <version>5.1.31</version> 
</dependency>

<!---------------------------------------------------------------------------------------------------------------------------------->
<!-- Oracle -->
<dependency> 
    <groupId>ojdbc</groupId> 
    <artifactId>ojdbc</artifactId> 
    <version>14</version> 
</dependency>

<dependency> 
    <groupId>com.oracle</groupId> 
    <artifactId>ojdbc14</artifactId> 
    <version>10.2.0.4.0</version> 
</dependency>

<!-- 위의 오라클을 해도 에러가 나오면 properties에 아래의 코드를 추가한다. -->
<repositories> 
    <repository> 
        <id>mvn2</id> 
        <url>http://repo1.maven.org/maven2/</url> 
        <releases> 
            <enabled>true</enabled> 
        </releases>
        <snapshots> 
            <enabled>true</enabled> 
        </snapshots> 
	</repository> 
    <repository> 
        <id>oracle</id> 
        <name>ORACLE JDBC Repository</name> 
        <url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url> 
    </repository> 
</repositories>


 

마이바티스 라이브러리 밑에는 본인이 사용할 DB라이브러리를 추가합니다. 저같은 경우 SQLite를 사용할 예정입니다. 기타 다른 DB는 위의 소스를 참고해주세요. 참고로 오라클 라이브러리는 정확하지 않을 수가 있습니다.

 

* 추가로 테스트할 수 있는 라이브러리도 넣어주기

<!-- spring test -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

 

4. root-context.xml 설정

<!-- SQLite -->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
    xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd
        http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
    
    <!-- Root Context: defines shared resources visible to all other web components -->
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource"
        lazy-init="false">
        <property name="driverClassName" value="org.sqlite.JDBC"/>
        <property name="url" value="jdbc:sqlite:경로"/>
    </bean>
    
    <!-- SqlSessionFactory -->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="SqlSessionFactory">
        <property name="dataSource" ref="dataSource" />
        <property value="classpath:mybatis-config.xml" name="configLocation" />
        <property value="classpath:/mapper/**/*Mapper.xml" name="mapperLocations" />
    </bean>

    <bean class="org.mybatis.spring.SqlSessionTemplate" id="sqlSession" destroy-method="clearCache">
        <constructor-arg name="sqlSessionFactory" ref="SqlSessionFactory" />
    </bean>
</beans>

<!-----------------------------------밑에서부터는 본인 사용할 DB에 맞게 알아서 사용-------------------------------------------------->
<!-- MySQL -->
<?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="com.mysql.jdbc.Driver"/> 
        <property name="url" value="jdbc:mysql://주소/스키마"/> 
        <property name="username" value="아이디"/> 
        <property name="password" value="비밀번호"/> 
     </bean> 
</beans>

<!---------------------------------------------------------------------------------------------------------------------------------->
<!-- Oracle -->
<?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="jdbc:oracle:thin:@localhost:1521:XE"/>
        <property name="username" value="아이디"/>
        <property name="password" value="비밀번호"/>
    </bean>
</beans>

 

5. mybatis-config.xml 파일 생성

<!-- 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>

</configuration>

 

그 다음은 src > main > resources경로 안에 mybatis-config.xml을 만듭니다. 그리고 위의 소스를 xml안에 선언해줍니다.


위의까지가 제가 배운 마이바티스 연동인데 이제 정상적으로 돌아가는지 한번 테스트를 해보도록 합시다. 테스트하는 방법은 본 링크를 참고해주세요.

 

[Spring] 스프링 MVC 프로젝트 설정(MyBatis + JDBC 연동)

오랜만에 스프링 다루느라 진땀뺐다. 뭔 에러가 그리도 많이 나던지 =_= 잊어버리기 전에 포스팅! * 아래에...

blog.naver.com

 

 

 

 

Comments