mybatis批量增删改查

博客围绕MyBatis批量增删改查展开,涉及BaseDemo1Mapper.xml文件,更新需多语句支持。介绍了增删改查在数据库的实现,还包含测试类,通过调用DAO层接口方法对增删改查功能进行测试。

mybatis批量增删改查

  • BaseDemo1Mapper.xml文件
    更新写了多条语句,需要多语句支持。
<mapper namespace="BaseDemo1Mapper">
<!-- 批量增删改查 -->
	<insert id="batchinsertData" parameterType="java.util.List">
		<selectKey resultType="java.lang.Integer" keyProperty="ID" order="AFTER">
			SELECT LAST_INSERT_ID()
		</selectKey>
		INSERT INTO exercise(
			id,stu_name,limit_time,unit,start_time,end_time
		)
		values
		<foreach collection="list" item="item" index="index" separator=",">
		(
			#{item.id},#{item.stu_name},#{item.limit_time},#{item.unit},#{item.start_time},#{item.end_time}
		)
		</foreach>
	</insert>
	<delete id="batchdeleteData" parameterType="java.util.List">
		delete from exercise where id in
		(
		<foreach collection="list" item="item" index="index" separator=",">
		 #{item}
		</foreach>
		 )
	</delete>
<update id="batchupdataData" parameterType="java.util.List">
	 <foreach collection="list" item="item" index="index" separator=";">
		update exercise
		set
		 stu_name=#{item.stu_name}
		<!-- stu_name=#{stu_name},limit_time=#{limit_time},unit=#{unit},start_time=#{start_time},end_time=#{end_time} -->
		where id=#{item.id}
		  </foreach>
	</update>
	</mapper>
  • 增删改查数据库实现
public boolean updataDataByID(String statement, List<Exercise> exerciseDemo1) {
		int count=session.update(statement, exerciseDemo1);
		return count>0;
	}
	public boolean insertDataByID(String statement, List<Exercise> exerciseDemo1) {
		int count=session.insert(statement, exerciseDemo1);
		return count>0;
	}
	public boolean deleteDataByID(String statement, List<Integer> exerciseDemo1) {
		int count=session.delete(statement, exerciseDemo1);
		return count>0;
	}
  • 测试类
    测试类通过return调用DAO层接口的方法并且测试增删改查
		//以下为批量增删改查
		//修改多条数据
		try {
			List<Exercise> li=new ArrayList<Exercise>();
			String XMLPath="BaseDemo1Mapper.batchupdataData";
			for(int i=0;i<3;i++) {
				Exercise ex=new Exercise();
				ex.setStu_name("dw"+i+2);
				ex.setId(i+28);
				li.add(ex);
				}
			exerciseDaoTest.updataDataByID(XMLPath, li);
		}catch(Exception e) {
			e.printStackTrace();
		}
		//增加多条数据
		try {
		List<Exercise> li=new ArrayList<Exercise>();
		String XMLPath="BaseDemo1Mapper.batchinsertData";
		for(int i=0;i<3;i++) {
			Exercise ex=new Exercise();
			ex.setStu_name("sw"+i+2);
			ex.setUnit("m");
			ex.setLimit_time(20.4);
			ex.setStart_time(new Date(new java.util.Date().getTime()));
			ex.setEnd_time(new Date(new java.util.Date().getTime()));
			li.add(ex);
			}
		 exerciseDaoTest.insertDataByID(XMLPath, li);
		 }catch(Exception e) {
			 e.printStackTrace();
		 }
		//删除多条数据
		
		try {
			String XMLPath="BaseDemo1Mapper.batchdeleteData";
			List<Integer> list1=new ArrayList<Integer>();
			list1.add(26);
			list1.add(27);
			exerciseDaoTest.deleteDataByID(XMLPath, list1);
		}catch(Exception e) {
			e.printStackTrace();
		}
		//查看多条数据
		
		try {
			String XMLPath="BaseDemo1Mapper.selectDataByUNAndET";
			Map<String,Object> params=new HashMap<String,Object>();
			params.put("unit","米");
			//List<Exercise> es=
					exerciseDaoTest.selectDataByUNAndET(XMLPath, params);
		}catch(Exception e) {
			e.printStackTrace();
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值