Mybaits的使用方法

一、定义一个User实体类

package com.domain;
public class User {
	private Integer id;
	private String username;
	private Integer age;
	public User()
	{}
	public User(String username, Integer age) {

		this.username = username;
		this.age = age;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
    @Override
    public String toString() {
    	// TODO Auto-generated method stub
    	return "id:"+id +",username:"+username+",age:"+age;
    }
}

二、首先写一个接口类:

package com.dao;
import java.util.List;
import com.domain.MyUser;
import com.domain.User;
public interface UserMapper {
	/*根据id查找一个对象*/
	public User findById(Integer id);
	/*添加一个对象*/
	public void addUser(User user);
	/*根据id删除一个对象*/
	public void deleteById(Integer id);
	/*查找所有对象*/
	public List<User> lists();
	/*数据库记录条数*/
	public int showCount();
	/*批量查找对象*/
	public List<User> findByIds(MyUser myUser);
	/*ids批量删除对象*/
	public void deleteByIds(MyUser myUser);
}
三、写一个与接口类UserMapper对应的UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper PUBLIC  
 "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  

<mapper namespace="com.dao.UserMapper">
<!-- 查找一个对象 -->
 <select id="findById" parameterType="Integer" resultType="User">
	select * from t_user where id=#{id}
</select>
<!-- 增加一个对象 -->
<insert id="addUser" parameterType="User">
	insert into t_user(username,age) values(#{username},#{age})
</insert>
<!-- 删除一个对象 -->
<delete id="deleteById" parameterType="Integer">
	delete from t_user where id=#{id}
</delete>
<!-- 显示所有对象 -->
<select id="lists" resultType="User">
	select * from t_user order by id desc
</select>
<!-- 查询数据库的记录条数 -->
<select id="showCount" resultType="Integer">
	select count(*) from t_user
</select>
<!-- parameterType参数类型,resultType结果类型.除了原有的类型,如果我们要引用 的话就需要在SqlMapConfig.xml中定义 .ids批量查找对象-->
<select id="findByIds" parameterType="MyUser" resultType="User">
    select * from t_user where id in
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
    #{item}
</foreach>
</select>
<!-- ids批量删除对象 -->
<delete id="deleteByIds" parameterType="MyUser">
    delete from t_user where id in <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">#{item}</foreach>
</delete> 
</mapper>  
其中MyUser 表示一个构造参数的实体类用来封装一些参数,这里是用来封闭用户id集合

package com.domain;
import java.io.Serializable;
public class MyUser implements Serializable {
	private static final long serialVersionUID = 1L;
	 private Integer[] ids;

	public Integer[] getIds() {
		return ids;
	}
	public void setIds(Integer[] ids) {
		this.ids = ids;
	}
}
四、为MyBabits增加一个配置数据库信息的配置文件:
<?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>
	<typeAliases>  
	<!-- 类映射文件 ,这里定义的可以做为参数类型,也可以作为结果类型,不过一定要定义,不然UserMapper.xml不能识别,这里的alias是起别名,在UserMapper.xml中可以直接使用 -->
	 <typeAlias alias="MyUser" type="com.domain.MyUser"/> 
	 <typeAlias alias="User" type="com.domain.User"/>
	 
	</typeAliases> 
	<environments default="development">  
	  <environment id="development"> 
	     <!-- 定义了ibatis的事务管理器有3中(JDBC,JTA,EXTERNAL) -->
		 <transactionManager type="JDBC" /> 
		 <!-- type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI) -->
		 <dataSource type="POOLED">    
		   <property name="driver" value="com.mysql.jdbc.Driver" />  
		   <property name="url" value="jdbc:mysql://192.168.1.188:3306/mybatis"/>
		   <property name="username" value="root" />   
		   <property name="password" value="root" />  
		 </dataSource>	 
	  </environment> 	  
	</environments>  
	<!-- 接口方法映射文件 -->
    <mappers>      
       <mapper resource="com/dao/UserMapper.xml"/>  
   </mappers>   
</configuration>
五、使用已经写好的接口,这里使用Junit单元测试,这里只测试了查找对象,其它方法可以自己去测试:

package com.test;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.*;
import com.dao.UserMapper;
import com.domain.MyUser;
import com.domain.User;
public class testMybatis {

	static SqlSessionFactory ssf=null;
	static SqlSession session=null;
        //加载配置文件,使用到SqlSessionFactoryBuilder工厂,并得到session
        @BeforeClass
	public static void before() throws IOException
	{
                String resource="SqlMapConfig.xml";
		Reader reader=Resources.getResourceAsReader(resource);
		ssf=new SqlSessionFactoryBuilder().build(reader);
		session=ssf.openSession();
	}
	/*查找一个对象 */
	@Test
	public void testGetById()
	{
	    try{
	       UserMapper userMapper=session.getMapper(UserMapper.class);    	   
	       User user=userMapper.findById(2);
    	   System.out.println(user);
           }catch(Exception e)
           {
    	      e.printStackTrace();
           }
	}
        //最后关闭session
        @AfterClass
	public static void afterClass()
	{
	   session.close();
	}






评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值