mybatis 例子

mybatis 例子

今天剛據說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

相關文章
相關標籤/搜索