文档章节

mybatis批量更新(mySQL) 常见问题(一)

I
 IsLearning
发布于 2017/04/07 14:00
字数 184
阅读 99
收藏 0
点赞 0
评论 0

 

<update id="updateBatch" parameterType="java.util.List">

<foreach collection="list" item="item" index="index" separator=";"

  open="" close="">

  update REGION_CODE set

    CODE=#{item.Code,jdbcType=VARCHAR},

    NAME=#{item.Name,jdbcType=VARCHAR}

    where ID = #{item.id,jdbcType=DECIMAL}

</foreach>

</update>

这样直接报错,因为Mybatis映射文件中的sql语句不允许 ; 符号。按照可行的case when处理方式,Mybatis映射文件书写方式如下:

<update id="updateBatch" parameterType="java.util.List">

  update REGION_CODE set

    CODE=

  <foreach collection="list" item="item" index="index" separator=" " open="case ID" close="end">

      when #{item.id,jdbcType=DECIMAL} then #{item.Code,jdbcType=VARCHAR}

  </foreach>

  ,NAME=

  <foreach collection="list" item="item" index="index" separator=" " open="case ID" close="end">

      when #{item.id,jdbcType=DECIMAL} then #{item.Name,jdbcType=VARCHAR}

  </foreach>

  where ID in

  <foreach collection="list" index="index" item="item" separator="," open="(" close=")">

      #{item.id,jdbcType=DECIMAL}

  </foreach>

</update>

      至此,批量更新功能完成。

本文转载自:http://www.cnblogs.com/hyq0002013/p/6077847.html

共有 人打赏支持
I
粉丝 1
博文 2
码字总数 0
作品 0
宝山
程序员
mysql批量插入以及批量更新

一、mysql批量插入 1.SQL语句: 2.注意事项: 3.案例(使用java和mybatis): java代码: mybatis的xml代码: 二、mysql批量更新 1.SQL语句: 2.注意事项: 3.案例(使用java和mybatis): ...

有钱有爱 ⋅ 2016/10/25 ⋅ 0

巧用sql事半功倍

在mybatis里,曾经踩过几次坑,也用了一些mysql的技巧来应用数据库的功能减少编码的复杂性,尤其是批量操作,下面配合mybatis的应用总结一下4个小技巧(1 传0值 2 批量insert 3 批量update ...

灰袍甘道夫 ⋅ 2017/11/15 ⋅ 0

mybatis 批量更新

此前的方案在做批量时使用mybatis提供的batch model,该模式下将推迟所有的update(包括insert和delete)语句直到提交事务或者遇到一次查询语句 上述代码可以看出当使用batch模式时如果sql和...

Mr_Qi ⋅ 2016/10/28 ⋅ 0

Mybatis 通用Crud

前言(说明) 源码地址:https://github.com/LittleNewbie/portal mybatis版本 3.2.6 mybatis crud 较为简陋,请移步至mybatis jpa :https://my.oschina.net/LittleNewbie/blog/895198 实现功能......

LittleNewbie ⋅ 2016/11/11 ⋅ 4

MyBatis学习 之 七、mybatis各种数据库的批量修改

                                MyBatis的update元素的用法与insert元素基本相同,因此本篇不打算重复了。本篇仅记录批量update操作的sql语句,懂得SQL语句...

无信不立 ⋅ 2016/03/21 ⋅ 0

Mybatis插入/删除批处理

文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 在操作数据库时,经常会碰到批量插入、批量删除的情况,直接执行SQL语句还好做一点,当使用Mybatis进行批量插入、批量删除时会有一些问题...

Quincuntial ⋅ 2016/11/29 ⋅ 0

EasyMybatis 1.2.0 发布,支持枚举类型字段

EasyMybatis 1.2.0 已发布,此次更新的内容有: 启用驼峰下划线转换。javaBean中的字段是驼峰形式,映射到数据库字段会转换成下划线形式。 doc 支持枚举类型字段。javaBean中可以定义枚举类型...

tanghc ⋅ 2017/09/12 ⋅ 3

Mybatis之批量更新操作

更新单条记录 UPDATE course SET name = 'course1' WHERE id = 'id1'; 更新多条记录的同一个字段为同一个值 UPDATE course SET name = 'course1' WHERE id in ('id1', 'id2', 'id3); 更新多条......

陈佳庆 ⋅ 2014/10/29 ⋅ 8

批量插入数据时效率注意

spring JdbcTemplate批量更新 http://blog.csdn.net/fyqcdbdx/article/details/7366439 MyBatis-spring和spring JDBC批量插入Mysql的效率比较 http://toplchx.iteye.com/blog/1988254 JDBC批......

kingdelee ⋅ 2014/10/19 ⋅ 0

【java】多线程批量拆分List导入数据库

一、前言 前两天做了一个导入的功能,导入开始的时候非常慢,导入2w条数据要1分多钟,后来一点一点的优化,从直接把list怼进Mysql中,到分配把list导入Mysql中,到多线程把list导入Mysql中。...

kisscatforever ⋅ 04/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部