MyBatis
▷기존 JDBC 프로그래밍을 할 때 소스 코드안에 SQL문을 작성했지만 해당 프로그램으로 SQL문을 xml파일로 작성하여 SQL문의 변경이 있을 때 소스 파일을 건들지 않아도 된다.
▷개발자가 지정한 SQL, 저장프로시저, 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. MyBatis는 JDBC 코드와 수동으로 셋팅하는 파라미터와 결과 매핑을 제거한다. MyBatis는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO를 설정하고 매핑하기 위해 XML과 애노테이션을 사용할 수 있다. (출처 : 홈페이지)
설치 및 연동
1. pom.xml 파일에 아래 추가
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.5</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>
※ 사용 하는 데이터베이스에 따라 작성 (예 : MariaDB )
<!-- JDBC -->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>1.5.7</version>
</dependency>
※ 데이터베이스 JDBC 버전 별 <dependency>
MySQL : https://mvnrepository.com/artifact/mysql/mysql-connector-java
Oracle : https://mvnrepository.com/artifact/oracle/ojdbc
MariaDB : https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
2. src/main/resources 폴더에 config.xml 파일을 만든 후 web.xml파일에 코드 추가
(별도의 폴더 생성 가능. spring/mybatis_config.xml 및 root-context.xml에도 가능)
2-1 . web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:config.xml</param-value> // 해당 파일을 만든 경로 spring/mybatis_config.xml
</context-param>
2-2. config.xml
<?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="org.mariadb.jdbc.Driver"/>
<property name="url" value="jdbc:mariadb://주소/스키마"/>
<property name="username" value="아이디"/>
<property name="password" value="비밀번호"/>
</bean>
<!-- SqlSessionFactoryBean 생성 . 해당 코드는 따로 만들 수 있다. -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
※ SqlSessionFactoryBean 생성을 다른 xml 파일에 만들 때
/src/main/resources 폴더 아래 mapper.xml 파일 및 SQL 파일을 보관할 폴더 생성
2-3. mapper.xml
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:SQL문 xml파일을 보관할 폴더 경로" />
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSession"/>
</bean>
3. 연동 끝!! sqlSessionTemplate 객체를 생성하여 테스트 (구글에 다양한 예제가 있다.)
'개발 환경 및 오류' 카테고리의 다른 글
Maven Oracle jdbc 설치 (0) | 2017.01.19 |
---|---|
Could not autowire field: private org.mybatis.spring.SqlSessionTemplate (0) | 2017.01.18 |
Maven (0) | 2017.01.12 |
AWS RDS DB인스턴스에 JDBC 연결 (0) | 2017.01.09 |
tomcat startup.sh 혹은 shutdown.sh: command not found (0) | 2017.01.09 |