티스토리 뷰

공장 (factory)/- Programming..

[Java] Mybatis 설정하기.

공부하는 나부랭이, 무중력고기 2014.01.24 20:30

   1. 파일 다운로드

   https://code.google.com/p/mybatis/downloads/list


mybatis-3.2.3.jar


   라이브러리 파일을 다운 받아서 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로 된 매뉴얼도 있으니 검색해볼 것.



댓글
댓글쓰기 폼
Total
1,354,477
Today
72
Yesterday
260
«   2019/08   »
        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
글 보관함