今天剛據說iBATIS更名爲MyBatis,實際上就是iBATIS 3.0.1。之前都是用hibernate或者JPA,同時據說iBATIS 3與iBATIS 2 相比,變化挺大的,因而今天花了點時間學習了一下,作了個小例子。
準備工做:創建相應的數據庫,表,添加一條記錄用於測試。
第一步固然是創建項目,導入jar包,導入mybatis-3.0.1.jar,和mysql的jdbc驅動。
第二步 新建一個類User,包含主鍵,用戶名,密碼等屬性
Java代碼
package cn.dcr.mybatis.entity;
public class User {
private Long id;
private String userName;
private String password;
private int age;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
第三步,寫sql映射的xml文件
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.dcr.mybatis.entity.UserMapper">
<select id="selectOne" parameterType="long" resultType="cn.dcr.mybatis.entity.User">
select * from user where id = #{id}
</select>
</mapper>
第四步,寫MyBatis配置文件,configuration.xml
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="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/dcr/mybatis/entity/User.xml"/>
</mappers>
</configuration>
第五步,編寫Util類,用於初始化SqlSessionFactory
Java代碼
package cn.dcr.mybatis.util;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Util {
private static SqlSessionFactory sqlSessionFactory = null;
static {
String resource = "configuration.xml";
Reader reader = null;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
}
第六步,編寫Dao類,用於封裝增刪改查等操做(爲簡單起見,這個類只有一個根據id查詢出對應的User對象的方法)
Java代碼
package cn.dcr.mybatis.dao;
import org.apache.ibatis.session.SqlSession;
import cn.dcr.mybatis.entity.User;
import cn.dcr.mybatis.util.Util;
public class UserDao {
public User query(Long id){
SqlSession session = Util.getSqlSessionFactory().openSession();
User user = null;
try{
user = (User)session.selectOne("cn.dcr.mybatis.entity.UserMapper.selectOne", id);
}catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
return user;
}
}
第七步,編寫測試類
Java代碼
package cn.dcr.mybatis.test;
import cn.dcr.mybatis.dao.UserDao;
import cn.dcr.mybatis.entity.User;
public class UserTest {
public static void main(String[] args){
UserDao userDao = new UserDao();
User user = userDao.query(1L);
System.out.println(user.getId());
System.out.println(user.getUserName());
System.out.println(user.getPassword());
System.out.println(user.getAge());
}
} java