mybatis基于后端的批量数据操作

目录

1.批量插入
2.批量修改
3.批量删除

在实际开发中都会遇到一些批量的操作,批量操作可以在controller层进行逻辑的操作。也可以进行在映射文件中进行操作。
一、批量插入
     将需要插入的对象封装成数组,然后作为参数传给映射文件进行处理。
  1. 编写接口
public interface StudentDao {
	void addStudent(Student[] students);
}
  1. 配置映射文件
<mapper namespace="Mapper.StudentDao">
	<insert id="addStudent">
        insert into student values
        <!--使用foreach进行操作-->
        <foreach collection="array" item="student" separator=",">
            (#{student.studentId},#{student.studentName})
        </foreach>
    </insert>
</mapper>

     实现接口传参就可以实现批量插入操作。
返回顶部

二、批量修改
     批量修改同样是将对象封装成对象数组,传入到映射文件中。
  1. 编写接口
public interface StudentDao {
	void updateStudent(Student[] students);
}
  1. 配置映射文件
 <update id="updateStudent">
       
      <foreach collection="array" item="student" separator=";">
      
          update student
      		<set>
       			studentName = #{student.studentName}
      		</set>
      			where studentId = #{student.studentId}
    	</foreach>
    </update>
  1. 需要在连接池中配置allowMultiQueries=true
jdbc.url=jdbc:mysql://localhost:3306/text?allowMultiQueries=true

     因为mybatis默认是不允许批量执行多条sql语句的。需要手动去配置开启多条语句操作。
返回顶部

三、批量删除
     批量删除有两种方法。
  1. 字符串作为参数

     (1) 接口

void deleteStudent(String studentId);

     (2) 配置映射文件

<delete id="deleteStudent" parameterType="String">
        
        delete from student where studentId in (${value})
    </delete>
  1. 数组作为参数

     (1) 接口

void deleteStudent(List<String> studentId);

     (2) 配置映射文件

<delete id="deleteStudent" parameterType="List">
        
        delete from student where studentId in 
        
        <foreach collection="list" item="studentId" open="(" separator="," close=")">
            
            #{studentId}
        </foreach>
    </delete>

返回顶部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值