欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Mybatis批量插入更新xml方式和注解方式的方法实例

时间:2021-06-02 08:20:34|栏目:JAVA代码|点击:

前言

最近工作上遇到很多批量插入的场景,但是百度很难得到我想要的结果,而且查出来的效果不是很好~

所以就自己来写一份给大家参考,希望对大家有用

Mybatis 批量插入注解形式

@Insert("<script> INSERT INTO t_device_policy "
   + "(id,device_id,type,policy,create_time,update_time) "
   + "VALUES "
   + "<foreach collection = 'list' item='list' separator=',' > "
   + " (#{list.id},#{list.deviceId},#{list.policyType},#{list.policy},#{list.createTime},#{list.updateTime}) "
   + "</foreach>"
   + "</script>")
 int insert(@Param(value = "list")List<DevicePolicy> list);

Mybatis 批量插入主键存在更新注解形式

@Insert("<script> INSERT INTO t_device_policy "
   + "(id,device_id,type,policy "
   + "VALUES "
   + "<foreach collection = 'list' item='list' separator=',' > "
   + " (#{list.id},#{list.deviceId},#{list.policyType},#{list.policy}) "
   + "</foreach>"
   + "ON DUPLICATE KEY "
   + "UPDATE policy = VALUES(policy)"
   + "</script>")
 int insert(@Param(value = "list")List<DevicePolicy> list);

ON DUPLICATE KEY的使用场景大家知道吗?

当你设计的数据库表中的主键存在时更新对应的字段,不存在则插入。

还有一种情况就是你设计的唯一主键存在时更新对应的字段,不存在则插入。

大家可以根据自己的场景看是否需要该字段~

Mybatis 批量更新注解形式

@Insert("<script> INSERT INTO t_device_policy "
   + "(id,device_id,type,policy "
   + "VALUES "
   + "<foreach collection = 'list' item='list' separator=',' > "
   + " (#{list.id},#{list.deviceId},#{list.policyType},#{list.policy}) "
   + "</foreach>"
   + "ON DUPLICATE KEY "
   + "UPDATE policy = VALUES(policy)"
   + "</script>")
 int insert(@Param(value = "list")List<DevicePolicy> list);

Mybatis 批量插入xml形式

 <insert id="batchAdd" parameterType="java.util.List">
  INSERT INTO t_student(uid,student_id,study_days)
  VALUES
  <foreach collection="list" item="item" index="index" separator=",">
   (#{item.uid},#{item.studentId},#{item.studyDays})
  </foreach>
 </insert>

Mapper中的方法为

 void batch(List<StudentPo> po)

Mybatis 批量插入主键更新xml形式

 <insert id="batchAdd" parameterType="java.util.List">
  INSERT INTO t_student(uid,student_id,study_days)
  VALUES
  <foreach collection="list" item="item" index="index" separator=",">
   (#{item.uid},#{item.studentId},#{item.studyDays})
  </foreach>
  ON DUPLICATE KEY UPDATE
  update_time = now()
 </insert>

Mapper中的方法为

 void batch(List<StudentPo> po)

总结

上一篇:SpringBoot ResponseBody返回值处理的实现

栏    目:JAVA代码

下一篇:java基于AspectJ(面向切面编程)编码示例分享

本文标题:Mybatis批量插入更新xml方式和注解方式的方法实例

本文地址:http://www.codeinn.net/misctech/133594.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有