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 |