주제 : java 에서 mybatis 를 사용한 독립적인 DB접근 클래스 개발
mybatis 를 spring framework (스프링)에 연동해서만 써봤지..
java class 파일에서 db연결을 할때 mybatis 를 써볼생각을 안했었다..
근데 java 로 batch 프로그램을 만들려다보니 문득 일반적인 jdbc 연결 말고.. mybatis 를 사용하면 더 편하지 않을까 하는 팀장님에 권유로 한번 해봤고
생각보다 쉽게 잘 적용할수잇었고 이를 기록으로 남기고자.....
ㅋㅋ..
<내용 요약>
우선 윈도우에서 이클립스를 쓰는환경에서 기본 코딩을 해보고
코딩된 소스를 가지고 리눅스로 가져가서 컴파일 후 돌려보는식에 내용이 작성되어있다.
<윈도우 & 이클립스 환경>
1. mybatis 다운로드
- https://github.com/mybatis/mybatis-3/releases
- mybatis-3.2.8.zip 다운로드
2. 이클립스 실행
- Project Explorer 에서 New Java Project 생성
- 프로젝트명 : test_mybatis
3. test.java 생성
4. test_mybatis 프로젝트에 libs 디렉토리 생성
5. 라이브러리 추가
- mybatis-3.2.8.zip의 압축을 풀고
- mybatis-3.2.8.jar 파일을
- 방금 생성한 libs 디렉토리에 추가
- 그 . 리 . 고
- mysql connector 가 필요하다.
- mysql-connector-java-5.1.29.jar 이놈도 추가해주자 (구글에서 mysql connector download 치면 쉽게 받을수있어요~)
6. java build path 설정
- Project Explorer 에서 test_mybatis 프로젝트명 우클릭
- properties 선택
- Java Build Path 선택
- Libraries 탭으로 이동
- Add JARs 선택
- libs 디렉토리에 추가해두었던 mybatis-3.2.8.jar 선택 후 확인
- libs 디렉토리에 추가해두었던 mysql-connector-java-5.1.29.jar 선택 후 확인
7. 코딩
예제 소스
>>> test.java
import java.util.List;
import org.apache.ibatis.session.SqlSession;
public class test{
public static void main(String[] args) {
// TODO Auto-generated method stub
SqlSession session = SqlMapClient.getSqlSession();
String nick = session.selectOne("test.getNick");
System.out.println("nick test : " + nick);
session.close();
}
}
>>> SqlMapClient.java
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class SqlMapClient {
private static SqlSession session;
static {
try {
String resource = "myBatisConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
session = sqlMapper.openSession();
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession() {
return session;
}
}
>>> sqlMapper/sql.xml (sqlMapper 디렉토리를 생성하고 그 안에 sql.xml 파일을 만든겁니당)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test">
<select id="getNick" resultType="String">
select nickname from user_info where id='111'
</select>
</mapper>
>>> db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://DB서버주소/DB의database이름
username=DB계정을써주세요
password=DB계정에대한 비밀번호를 써주세요
>>> myBatisConfig.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>
<!-- db 정보 파일을 로드한다. -->
<properties resource="db.properties" />
<!-- db 연결 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- sql 맵퍼 -->
<mappers>
<mapper resource="sqlMapper/sql.xml" />
</mappers>
</configuration>
===============================================
이제 리눅스환경에서 위 내용을 돌려봅시다.
1. jdk 설치되어있어야하고
2. /home/batch 디렉토리 생성
3. 아래 모양처럼.. batch 디렉토리 아래에 쫙 밀어넣는다. (sqlMapper 디렉토리에는 sql.xml 이 있어야겠지)
-rw-r--r-- 1 user1 user1 831 4월 7 15:36 SqlMapClient.java
-rw-r--r-- 1 user1 user1 420 4월 7 15:36 test.java
-rw-r--r-- 1 user1 user1 102 4월 7 15:36 db.properties
-rw-r--r-- 1 user1 user1 918 4월 7 15:36 myBatisConfig.xml
-rw-r--r-- 1 user1 user1 714073 4월 7 15:36 mybatis-3.2.8.jar
-rw-r--r-- 1 user1 user1 876730 4월 7 16:06 mysql-connector-java-5.1.29.jar
drwxrwxr-x 2 user1 user1 4096 4월 7 16:03 sqlMapper
4. 환경변수설정
- root 계정으로 로그인 후
- vi /etc/profile
- 아래내용들을 추가한다. (본인 설치정보에 맞게 내용은 바꾸셔야겠죠?!)
JAVA_HOME=/home/jdk1.7
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
export CLASSPATH=$CLASSPATH:/home/batch/mybatis-3.2.8.jar
export CLASSPATH=$CLASSPATH:/home/batch/mysql-connector-java-5.1.29.jar
- 그러고나서 batch 디렉토리로 돌아온다음
javac SqlMapClient.java
javac accessLog_analyze.java
순으로 컴파일
java accessLog_analyze 로 실행하면 됨
댓글
댓글 쓰기