ibatis 3 学习笔记1

Ibatis更新还真快!呵呵,看到csdn友博客,受益匪浅,转帖大家分享,便于自己保存

准备ibatis环境

oracle 10g express            ibatis beta 5

新建工程 在WEBINF\lib下 导入以下包:
..\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar
ibatis-3-core-3.0.0.208.jar


总配置文件SqlMapConfig.xml

//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">

<configuration>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
				<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
				<property name="username" value="puf"/>
				<property name="password" value="pufang890505"/>
			</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<mapper resource="cn/pf/ibatis/domain/Student.xml"/>
	</mappers>
</configuration>




关于每个实体的映射文件(map)Student.xml

<?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="cn.pf.ibatis.domain.StudentMapper">
	<select id="selectStudent" parameterType="int" resultType="cn.pf.ibatis.domain.Student">
		select * from Student where id = #{id}
	</select>
</mapper>


创建Student POJO

package cn.pf.ibatis.domain;

import java.util.Date;

/**
 * 学生PO
 * @author  pf
 * @version 2010-3-16下午03:00:00
 */
public class Student {
	/**
	 * 学生编号
	 */
	private int id;
	/**
	 * 学生姓名
	 */
	private String name;
	/**
	 * 学生专业
	 */
	private String major;
	/**
	 * 学生生日
	 */
	private Date birth;
	/**
	 * 学生分数
	 */
	private double score;
	/**
	 * ... 构造函数
	 */
	public Student() {
		super();
	}
	/**
	 * ... 构造函数
	 * @param id
	 * @param name
	 * @param major
	 * @param birth
	 * @param score
	 */
	public Student(int id, String name, String major, Date birth, double score) {
		super();
		this.id = id;
		this.name = name;
		this.major = major;
		this.birth = birth;
		this.score = score;
	}
	/**
	 * id getter 方法
	 * @return the id
	 */
	public int getId() {
		return id;
	}
	/**
	 * id setter 方法
	 * @param id the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}
	/**
	 * name getter 方法
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * name setter 方法
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * major getter 方法
	 * @return the major
	 */
	public String getMajor() {
		return major;
	}
	/**
	 * major setter 方法
	 * @param major the major to set
	 */
	public void setMajor(String major) {
		this.major = major;
	}
	/**
	 * birth getter 方法
	 * @return the birth
	 */
	public Date getBirth() {
		return birth;
	}
	/**
	 * birth setter 方法
	 * @param birth the birth to set
	 */
	public void setBirth(Date birth) {
		this.birth = birth;
	}
	/**
	 * score getter 方法
	 * @return the score
	 */
	public double getScore() {
		return score;
	}
	/**
	 * score setter 方法
	 * @param score the score to set
	 */
	public void setScore(double score) {
		this.score = score;
	}
	/**
	 * 转换对象为字符串
	 * @return 对象转换后的字符串
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Student [birth=" + birth + ", id=" + id + ", major=" + major
				+ ", name=" + name + ", score=" + score + "]";
	}
	
	
}


test.java

String resource = "SqlMapConfig.xml";
Reader reader = null;
try {
	//使用ibatis提供的Resources类读取资源文件
	reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}
//根据资源文件内容建立session工厂
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);   
//session工厂打开一个session
SqlSession session = sqlMapper.openSession(true);  
		
Student student;
try{
	student = (Student)session.selectOne("cn.pf.ibatis.domain.StudentMapper.selectStudent", 1);
}finally{
	session.close();
}
		
System.out.println(student.toString());


ibatis 3 果然改动很大,调试花了不少时间,很多细小的错误耽误了很久。那个ibatis 3 user guide缺少完整的实例真是不爽,自己一点点试探过来,继续研究各种配置,下一步完成一个基本的crud操作。

你可能感兴趣的:(apache,oracle,xml,ibatis,jdbc)