티스토리 뷰
출처 : http://zero-gravity.tistory.com/198
1. 파일 다운로드
https://code.google.com/p/mybatis/downloads/list
라이브러리 파일을 다운 받아서 lib 폴더에 넣는다.
2. DB 정보를 담은 properties 파일 작성 (db.properties)
- 오라클 기준해서 써놨다. 각자 상황에 따라서 변경.
## database connection property.
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:포트번호:xe
username=username
password=password
3. Mapper 작성 (member.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="kr.co.test.mybatis.mappers.memberMapper">
<select id="selectMember" resulttype="kr.co.test.vo.MemberDTO" parametertype="string">
SELECT
*
FROM MEMBER
WHERE MEM_ID = #{noname}
</select>
<update id="updateMember" parametertype="kr.co.test.vo.MemberDTO">
UPDATE TBL_FEEDS
SET
MEM_NAME = '${mem_name}'
MEM_PHONE = '${mem_phone}'
MEM_ADDR = '${mem_addr}'
WHERE MEM_ID = '${mem_id}'
</update>
</mapper>
위와 같이 코딩. member 테이블이 있다는 가정 하에 예를 들어서 코딩한 것.
mybatis의 경우 ibatis와 다르게 interface를 사용하는 방법도 있으나 자세한 사항은 매뉴얼을 참조.
3. mybatis xml 설정 파일 작성 (configuration.xml)
mapper파일과 마찬가지로 맨 위에 독타입 선언하고 아래와 같이 코딩.
<configuration>
<properties resource="db.properties">
<environments default="development">
<environment id="development">
<transactionmanager type="JDBC">
<datasource type="POOLED">
<property value="${driver}" name="driver">
<property value="${url}" name="url">
<property value="${username}" name="username">
<property value="${password}" name="password">
</property></property></property></property></datasource>
</transactionmanager></environment>
</environments>
<mappers>
<mapper resource="kr/co/test/mybatis/mappers/memberMapper.xml">
</mapper></mappers>
</properties></configuration>
4. SqlSessionFactory 빌드하기 (SqlMapSessionFactory.java)
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class SqlMapSessionFactory {
public static SqlSessionFactory ssf;
static{
String resource = "kr/co/test/mybatis/configuration.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
ssf = new SqlSessionFactoryBuilder().build(inputStream);
}
public static SqlSessionFactory getSqlSessionFactory(){
return ssf;
}
}
5. DAO 작성 (MemberDAO.java)
public class MemberDao {
private MemberDao() {}
private static MemberDao dao;
public static MemberDao getInstance(){
if(dao == null){
dao = new MemberDao();
}
return dao;
}
SqlSessionFactory factory = SqlMapSessionFactory.getSqlSessionFactory();
public MemberDTO selectMember(String mem_id) {
SqlSession session = factory.openSession();
MemberDTO memberDTO = session.selectOne("kr.co.test.mybatis.mappers.memberMapper.selectMember", mem_id);
session.close();
return memberDTO;
}
public int updateMember(MemberDTO memberDTO) {
SqlSession session = factory.openSession();
int update = session.update("kr.co.test.mybatis.mappers.memberMapper.updateMember", memberDTO);
// update나 delete의 경우 반드시 커밋 필요.
// session.commit();을 해주거나 factory.openSession(true);로 설정하면 자동 커밋된다.
session.commit();
session.close();
return update;
}
}
6. Service 작성 (MemberService.java)
public class MemberService {
private MemberService(){}
private static MemberService service;
private MemberService dao = MemberService.getInstance();
public static MemberService getInstance(){
if(service == null){
service = new MemberService();
}
return service;
}
enum MemberResult {OK, FAIL};
public String getMember(String mem_id) {
return dao.selectMember(mem_id);
}
public MemberResult modifyMember(MemberDTO memberDTO) {
int result = dao.updateMember(memberDTO);
if(result > 0){
return MemberResult.OK;
}else{
return MemberResult.FAIL;
}
}
}
Interface 과정 다 생략하고 아주 간단하게 예를 들어서 써봤다.
mybatis 관련해서 자세한 설정을 원한다면 매뉴얼을 참고하길 바란다. (위에 내가 해놓은 것들은 type alias도 안하고 그냥 초간단하게 만들어놓은 것임.)
→ http://mybatis.github.io/mybatis-3/ko/index.html
찾아보면 PDF로 된 매뉴얼도 있으니 검색해볼 것.
'program' 카테고리의 다른 글
spring 설치 시나리오 (0) | 2014.08.21 |
---|---|
[Eclipse/Maven] 메이븐 설치 요약. (0) | 2014.08.21 |
03 Eclipse Spring plugin 설치 (0) | 2014.08.21 |
Spring Framework3.2(Eclipse+STS), Maven Plugin 설치 Spring (0) | 2014.08.21 |
이클립스 set get 메서드 자동 생성 (0) | 2014.07.17 |