广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >MyBatis动态sql之批量修改、批量新增(使用foreach标签的一条sql语句解决)
  • 162
分享到

MyBatis动态sql之批量修改、批量新增(使用foreach标签的一条sql语句解决)

mysqlsql数据库javamybatis 2023-08-31 16:08:45 162人浏览 八月长安
摘要

使用原因:         批量新增和批量修改在业务中是很常见的,一条sql访问数据库和通过代码循环体中循环访问数据库做单个数据新增修改相比较下:一条sql访问数据库性能上明显提升,代码且简洁明了 批量修改: 1、Mapper.java中

使用原因:

        批量新增和批量修改在业务中是很常见的,一条sql访问数据库和通过代码循环体中循环访问数据库做单个数据新增修改相比较下:一条sql访问数据库性能上明显提升,代码且简洁明了


批量修改:

1、Mapper.java中

说明:参数是list

@Repositorypublic interface ProcessUnitDurationMapper {    int updateMultiple(List list);}

 2、Mapper.xml中

说明:通过trim标签拼接前后缀和去除多余的逗号,parameterType即是参数list中的元素实体类(必须写),item是list中元素的实体类的实例对象,WHEN是条件,THEN是赋值

UPDATE st_process_unit_durationWHEN id =#{processUnitDuration.id} THEN #{processUnitDuration.processId}WHEN id =#{processUnitDuration.id} THEN #{processUnitDuration.updateBy}WHEN id =#{processUnitDuration.id} THEN #{processUnitDuration.updateTime}version = version+1id =#{processUnitDuration.id}

批量新增:

1、Mapper.java中

说明:参数是list

@Repositorypublic interface ProcessUnitDurationMapper {    int insertMultiple(List list);}

 2、Mapper.xml中

分两种情况: (一)、主键自增情况字段较少,插入字段灵活性高  (二)、主键不自增,字段较多

情况一说明:通过trim标签拼接前后缀和去除多余的逗号,parameterType即是参数list中的元素实体类(必须写),useGeneratedKeys=true表明主键自增,keyProperty指定主键自增字段

insert into st_process_unit_durationprocess_id,unit_duration,init_duration#{list.processId,jdbcType=VARCHAR},#{list.unitDuration,jdbcType=INTEGER},#{list.initDuration,jdbcType=INTEGER}

情况二说明:如果使用trim标签会显得很臃肿,所以手动拼接即可,parameterType即是参数list中的元素实体类(必须写),与情况一对比,字段插入灵活性略低

id,create_by,create_time,update_by,update_time,version,process_id,unit_duration,init_durationinsert into st_process_unit_duration()values(#{list.id,jdbcType=VARCHAR},#{list.createBy,jdbcType=VARCHAR},#{list.createTime,jdbcType=TIMESTAMP},#{list.updateBy,jdbcType=VARCHAR},#{list.updateTime,jdbcType=TIMESTAMP},#{list.version,jdbcType=INTEGER},#{list.processId,jdbcType=VARCHAR},#{list.unitDuration,jdbcType=INTEGER},#{list.initDuration,jdbcType=INTEGER})

 注意情况:

        标签中:collection属性中的list与传入参数类型相对应,item属性就是list中的元素—实体类的实例对象

 结束语:珍视每一次机会,输给自己的感觉,比输给别人更惨

来源地址:https://blog.csdn.net/Da_zhenzai/article/details/127817838

--结束END--

本文标题: MyBatis动态sql之批量修改、批量新增(使用foreach标签的一条sql语句解决)

本文链接: https://www.lsjlt.com/news/386284.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作