EX> members테이블 조회, 입력, 수정 테스트


소스구성>



1. xml 파일 패키지 : orm.mybatis 패키지 밑에 config.xml, memberMapper.xml

2. test.main 패키지 : TestMain.java

    test.vo 패키지 : MembersVo.java



(1) config.xml


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <environments default="development">

        <environment id="development">

            <transactionManager type="JDBC" />

            <dataSource type="POOLED">

                <property name="driver" value="oracle.jdbc.OracleDriver" />

                <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />

                <property name="username" value="scott" />

                <property name="password" value="tiger" />

            </dataSource>

        </environment>

    </environments>

    <mappers>

        <mapper resource="orm/mybatis/memberMapper.xml" />

    </mappers>

</configuration>


(2) memberMapper.xml

: select 시 resultType 으로 vo클래스(getter,setter), map( hashmap,.. ) 이 가능하다. 

; select 절은 반드시 resultType()이 존재해야 함.

  select로 추출된 데이터를 resultType의 객체에 담고 이 객체를 다시 List에 담아 리턴한다.

<?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="orm.mybatis.memberMapper">

    <insert id="add" parameterType="test.vo.MembersVo">

        insert into members values(#{id},#{pwd},#{email},#{phone},sysdate)

    </insert>

    <delete id="remove" parameterType="java.lang.String">

        delete from members where id=#{id}

    </delete>

    <update id="modify" parameterType="test.vo.MembersVo">

        update members set pwd=#{pwd},email=#{email},phone=#{phone} where id=#{id}

    </update>


    <select id="getlist" resultType="test.vo.MembersVo">

        select * from members

    </select>

    <select id="find" parameterType="String" resultType="test.vo.MembersVo">

        select * from members where id=#{id}

    </select>

    <select id="getInfo" parameterType="String" resultType="hashmap">

        select * from members

         where id=#{id}    

    </select>

</mapper>



(3) TestMain.java

; insert, delet하기

package test.main;


import java.io.IOException;

import java.io.InputStream;


import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;


import test.vo.MembersVo;


public class TestMain {

    public static void main(String[] args) {


        String res="orm/mybatis/config.xml";


        try{

            // mybatis환경 설정 파일을 읽어오기 위한 스트림 객체

            InputStream is = Resources.getResourceAsStream(res);


            //SqlSessionFactory 객체 얻어오기

            SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);


            //sql문장을 호출하는 sqlSession객체 얻어오기

            SqlSession session = factory.openSession();

            MembersVo vo = new MembersVo("batis2","1111","batis@co.kr","010", null);


            //insert("호출할 sql구문 id", 파라미터객체 );

            int n=session.insert("add", vo); //xml의 insert태그 id, 파라미터


            if(n>0){

                //커밋하기

                session.commit();

                System.out.println("추가 성공");

            }else{

                session.rollback();

                System.out.println("추가 실패");

            }

            

            n = session.delete("remove", "batis");

            System.out.println("delete 처리건수:" + n);

            

            session.commit();

            

            //세션닫기

            session.close();

            

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}




(4) select 예제 :  ( vo 클래스 , hashmap 사용 )


package test.main;


import java.io.IOException;

import java.io.InputStream;

import java.sql.Timestamp;

import java.util.HashMap;

import java.util.List;


import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import test.vo.MembersVo;


public class TestMain1 {

    public static void main(String[] args) {


        String res="orm/mybatis/config.xml";


        try{

            InputStream is = Resources.getResourceAsStream(res);

            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);

            SqlSession session = factory.openSession();

            List<MembersVo> list = session.selectList("getlist");

            

            for(MembersVo vo:list){

                System.out.println("id:" + vo.getId() );

                System.out.println("pwd:" + vo.getPwd() );

                System.out.println("email:" + vo.getEmail() );

                System.out.println("phone:" + vo.getPhone() );

                System.out.println("regdate:" + vo.getregdate() );

                System.out.println();

            }

            

            String findId="batis1";


            MembersVo vo1 = session.selectOne("find", findId);

            if(vo1 == null){

                System.out.println("검색된 회원이 없어요!");

            }else{

                System.out.println("id:" + vo1.getId() );

                System.out.println("pwd:" + vo1.getPwd() );

                System.out.println("email:" + vo1.getEmail() );

                System.out.println("phone:" + vo1.getPhone() );

                System.out.println("regdate:" + vo1.getregdate() );

                System.out.println();

            }

            

            HashMap<String, Object> map = session.selectOne("orm.mybatis.memberMapper.getInfo", "batis1");

            // key : 칼럼명, value : 내용.

            String id = (String)map.get("ID");

            String pwd= (String)map.get("PWD");

            String email= (String)map.get("EMAIL");

            String phone= (String)map.get("PHONE");

            Timestamp regdate= (Timestamp)map.get("REGDATE");


            System.out.println("[[  정보 검색 (map 사용)  ]]");

            System.out.println("id:" +id );

            System.out.println("pwd:" +pwd );

            System.out.println("email:" +email );

            System.out.println("phone:" +phone );

            System.out.println("regdate:" +regdate );

            

            session.close();

            

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}






(5) MembersVo.java 

package test.vo;


import java.sql.Date;


public class MembersVo {

    private String id;

    private String pwd;

    private String email;

    private String phone;

    private Date regdate;

    

    public MembersVo(){}


    public MembersVo(String id, String pwd, String email, String phone,

            Date regdate) {

        super();

        this.id = id;

        this.pwd = pwd;

        this.email = email;

        this.phone = phone;

        this.regdate = regdate;

    }


    public String getId() {

        return id;

    }


    public void setId(String id) {

        this.id = id;

    }


    public String getPwd() {

        return pwd;

    }


    public void setPwd(String pwd) {

        this.pwd = pwd;

    }


    public String getEmail() {

        return email;

    }


    public void setEmail(String email) {

        this.email = email;

    }


    public String getPhone() {

        return phone;

    }


    public void setPhone(String phone) {

        this.phone = phone;

    }


    public Date getregdate() {

        return regdate;

    }


    public void setregdate(Date regdate) {

        this.regdate = regdate;

    }

}



'WEB > MyBatis' 카테고리의 다른 글

dynamic query : 동적쿼리  (0) 2013.05.04
log4j.properties  (0) 2013.05.04
3. MyBatis 사용 간한한 방명록 예제  (0) 2013.04.24
1. 라이브러리 다운 및 환경설정(xml)  (0) 2013.04.24

+ Recent posts