현재는 beta 3 이군여..
iBATIS 3 for Java User Guide 문서를 바탕으로 해보기..
SqlMapClient 에서 제공한던것이 .
org.apache.ibatis.session.SqlSession 가 그역활를 하는듯
기존 sqlmap......xml 이던것이 mapper라는 이름으로 바뀌었군여..
그외 JAVA 5 의 기능인 annotation으로 .....xml 파일을 대체할수 있다는 것도...
전체적으로 iBatis3은 기존버전에서 많은 변화를 꾀한듯 합니다.....hibernate와 많이 비슷해져가고 있다는 느낌도 듭니다......
정말....기술은 ..계속 진보 하는군요...
전체적으로 개발이 더 쉬워 진듯 합니다..
Configuration.xml (설정파일)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
<properties resource="conf.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="BlogMapper.xml" />
</mappers>
</configuration>
Ibatis3Test.java Main 클래스
package jylee.main;
import java.io.IOException;
import java.io.Reader;
import jylee.dto.Blog;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Ibatis3Test {
/**
* @param args
*/
public static void main(String[] args) {
try {
Reader reader = Resources.getResourceAsReader("Configuration.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sqlSessionFactory .openSession();
try {
Blog blog = (Blog) session.selectOne("ibatis3.mapper.BlogMapper.selectBlog", 101);
if(blog==null){
System.out.println("dd");
}else{
System.out.println("id=="+blog.getId());
}
blog = new Blog();
blog.setId(100);
session.insert("ibatis3.mapper.BlogMapper.insertBlog", blog);//자료 추가
blog = (Blog) session.selectOne("ibatis3.mapper.BlogMapper.selectBlog", 100);//추가한 자료가져오기..
if(blog==null){
System.out.println("dd");
}else{
System.out.println("id=="+blog.getId());
}
List<Blog> blogList = (List<Blog>) session.selectList("ibatis3.mapper.BlogMapper.selectBlogList");//전체자료조회
for (Blog blog2 : blogList) {
System.out.println("id=="+blog2.getId());
}
} finally {
session.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
테스트용 테이블 생성
CREATE TABLE BLOG
( ID int,
primary key (id)
);
테스트 자료
insert into blog values(101);
Blog.java(모델클래스)
package jylee.dto;
public class Blog {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
BlogMapper.xml mapper 파일
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="ibatis3.mapper.BlogMapper">
<select id="selectBlog" parameterType="int" resultType="jylee.dto.Blog">
select * from Blog where id = #{id}
</select>
<select id="selectBlogList" resultType="jylee.dto.Blog">
select * from Blog
</select>
<insert id="insertBlog" parameterType="jylee.dto.Blog">
insert into blog values(#{id})
</insert>
</mapper>
실행결과
----------------------------------------------
id==101
id==100
id==100
id==101
참조
http://ibatis.apache.org/index.html
http://ibatis.apache.org/java.cgi
http://opensource.atlassian.com/confluence/oss/display/IBATIS/iBATIS+3.0+Whiteboard+-+Korean
http://opensource.atlassian.com/confluence/oss/display/IBATIS/iBATIS+3.0+Whiteboard
