티스토리 뷰
1. 파일 다운로드
https://code.google.com/p/mybatis/downloads/list
라이브러리 파일을 다운 받아서 lib 폴더에 넣는다.
2. DB 정보를 담은 properties 파일 작성 (db.properties) - 오라클 기준해서 써놨다. 각자 상황에 따라서 변경.
1 2 3 4 5 | ## 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">
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | < mapper namespace = "kr.co.test.mybatis.mappers.memberMapper" > < select id = "selectMember" parametertype = "string" resulttype = "kr.co.test.vo.MemberDTO" > 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파일과 마찬가지로 맨 위에 독타입 선언하고 아래와 같이 코딩.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | < configuration > < properties resource = "db.properties" > < 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}" > </ 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)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 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)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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로 된 매뉴얼도 있으니 검색해볼 것.
'공장 (factory) > - Programming..' 카테고리의 다른 글
[Eclipse/Maven] 메이븐 설치 요약. (0) | 2014.04.07 |
---|---|
[Java] keystore/truststore 생성, SSL 사용 예. (7) | 2014.01.29 |
[Java/JSP] JSON 간단 예제. (1) | 2014.01.20 |
[JSP] Put 방식의 서버 측 코딩 예 (doPut) (0) | 2013.12.11 |
[HDFS/Java] HDFS를 Java에서 사용하기 (0) | 2013.11.06 |