티스토리 뷰

program

[Java] Mybatis 설정하기.

littlecarbb 2014. 8. 21. 17:25

출처 : http://zero-gravity.tistory.com/198

 

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">




<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로 된 매뉴얼도 있으니 검색해볼 것.

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함