MyBatis小试牛刀

 

今天刚听说iBATIS改名为MyBatis,实际上就是iBATIS 3.0.1。以前都是用hibernate或者JPA,同时听说iBATIS 3与iBATIS 2 相比,变化挺大的,于是今天花了点时间学习了一下,做了个小例子。

 

准备工作:建立相应的数据库,表,添加一条记录用于测试。

 

第一步当然是建立项目,导入jar包,导入mybatis-3.0.1.jar,和mysql的jdbc驱动。

 

第二步 新建一个类User,包含主键,用户名,密码等属性

 

Java代码 复制代码  收藏代码
  1. package cn.dcr.mybatis.entity;   
  2.   
  3. public class User {   
  4.     private Long id;   
  5.     private String userName;   
  6.     private String password;   
  7.     private int age;   
  8.   
  9.     public Long getId() {   
  10.         return id;   
  11.     }   
  12.   
  13.     public void setId(Long id) {   
  14.         this.id = id;   
  15.     }   
  16.   
  17.     public String getUserName() {   
  18.         return userName;   
  19.     }   
  20.   
  21.     public void setUserName(String userName) {   
  22.         this.userName = userName;   
  23.     }   
  24.   
  25.     public String getPassword() {   
  26.         return password;   
  27.     }   
  28.   
  29.     public void setPassword(String password) {   
  30.         this.password = password;   
  31.     }   
  32.   
  33.     public int getAge() {   
  34.         return age;   
  35.     }   
  36.   
  37.     public void setAge(int age) {   
  38.         this.age = age;   
  39.     }   
  40.   
  41. }  
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代码 复制代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>     
  2. <!DOCTYPE mapper     
  3. PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"     
  4. "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">     
  5.      
  6. <mapper namespace="cn.dcr.mybatis.entity.UserMapper">     
  7.     <select id="selectOne" parameterType="long" resultType="cn.dcr.mybatis.entity.User">     
  8.         select * from user where id = #{id}     
  9.     </select>     
  10. </mapper>  

 

 第四步,写MyBatis配置文件,configuration.xml

 

Xml代码 复制代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>    
  2. <!DOCTYPE configuration    
  3.     PUBLIC "-//mybatis.org//DTD Config 3.0//EN"    
  4.     "http://mybatis.org/dtd/mybatis-3-config.dtd">     
  5. <configuration>  
  6.     <environments default="development">    
  7.         <environment id="development">    
  8.             <transactionManager type="JDBC"/>    
  9.             <dataSource type="POOLED">    
  10.                 <property name="driver" value="com.mysql.jdbc.Driver"/>    
  11.                 <property name="url" value="jdbc:mysql://localhost:3306/test"/>    
  12.                 <property name="username" value="root"/>    
  13.                 <property name="password" value="root"/>    
  14.             </dataSource>    
  15.         </environment>    
  16.     </environments>    
  17.     <mappers>    
  18.         <mapper resource="cn/dcr/mybatis/entity/User.xml"/>    
  19.     </mappers>  
  20. </configuration>  

 

第五步,编写Util类,用于初始化SqlSessionFactory

 

Java代码 复制代码  收藏代码
  1. package cn.dcr.mybatis.util;   
  2.   
  3. import java.io.IOException;   
  4. import java.io.Reader;   
  5.   
  6. import org.apache.ibatis.io.Resources;   
  7. import org.apache.ibatis.session.SqlSessionFactory;   
  8. import org.apache.ibatis.session.SqlSessionFactoryBuilder;   
  9.   
  10. public class Util {   
  11.        
  12.     private static SqlSessionFactory sqlSessionFactory = null;   
  13.        
  14.     static {   
  15.         String resource = "configuration.xml";    
  16.            
  17.         Reader reader = null;   
  18.         try {   
  19.             reader = Resources.getResourceAsReader(resource);   
  20.         } catch (IOException e) {   
  21.             e.printStackTrace();   
  22.         }          
  23.            
  24.         sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);   
  25.     }   
  26.        
  27.     public static SqlSessionFactory getSqlSessionFactory(){   
  28.         return sqlSessionFactory;   
  29.     }   
  30. }  
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代码 复制代码  收藏代码
  1. package cn.dcr.mybatis.dao;   
  2.   
  3. import org.apache.ibatis.session.SqlSession;   
  4.   
  5. import cn.dcr.mybatis.entity.User;   
  6. import cn.dcr.mybatis.util.Util;   
  7.   
  8. public class UserDao {   
  9.     public User query(Long id){   
  10.         SqlSession session = Util.getSqlSessionFactory().openSession();   
  11.         User user = null;   
  12.         try{   
  13.              user = (User)session.selectOne("cn.dcr.mybatis.entity.UserMapper.selectOne", id);   
  14.         }catch(Exception e){   
  15.             e.printStackTrace();   
  16.         }finally{   
  17.             session.close();   
  18.         }   
  19.         return user;   
  20.     }   
  21. }  
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代码 复制代码  收藏代码
  1. package cn.dcr.mybatis.test;   
  2.   
  3. import cn.dcr.mybatis.dao.UserDao;   
  4. import cn.dcr.mybatis.entity.User;   
  5.   
  6. public class UserTest {   
  7.     public static void main(String[] args){   
  8.         UserDao userDao = new UserDao();   
  9.         User user = userDao.query(1L);   
  10.            
  11.         System.out.println(user.getId());   
  12.         System.out.println(user.getUserName());   
  13.         System.out.println(user.getPassword());   
  14.         System.out.println(user.getAge());   
  15.     }   
  16. }  
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());
	}
}

 

 

运行一下,能够成功查询出对应的记录。

 

先到这,等有功夫在研究一下详细用法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值