티스토리 뷰
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">
UPDATE TBL_FEEDS SET MEM_NAME = '${mem_name}' MEM_PHONE = '${mem_phone}' MEM_ADDR = '${mem_addr}' WHERE MEM_ID = '${mem_id}'
위와 같이 코딩. member 테이블이 있다는 가정 하에 예를 들어서 코딩한 것.
mybatis의 경우 ibatis와 다르게 interface를 사용하는 방법도 있으나 자세한 사항은 매뉴얼을 참조.
3. mybatis xml 설정 파일 작성 (configuration.xml)
mapper파일과 마찬가지로 맨 위에 독타입 선언하고 아래와 같이 코딩.
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로 된 매뉴얼도 있으니 검색해볼 것.
'공장 (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 |