项目中经常的需要使用批量操作语句对数据进行操作,使用批量语句的时候需要注意MySQL数据库的条件限制,这里主要是数据的大小限制,这里对批量插入、批量查找及批量更新的基础操作进行下简单的汇总。

1、批量insert插入语句,如下的语句在测试环境尝试过1W+的批量插入,具体数量跟表结构及字段内容有关系。

<insert id=”addTextPushList”paramerterType = “java.util.List”>
INSERT INTO SYS_TEXT_PUSH(
PUSH_ID,
USER_UM_ACCOUNT,
USER_NAME,
SECTION,
USER_MOBILE,
PUSH_STATUS,
PROMOTE_ID,
CREATED_BY,
CREATION_DATE,
ENABLED_FLAG
)values
<foreach collection=”list” item = “item” separator=”,”>
(
#{item.pushId},
#{item,userUmAccount},
#{item.userName},
#{item.section},
#{item.userMobile},
#{item.pushStatus},
#{item.promoteId},
#{item.createdBy},
#{item.creationDate},
#{item.enabledFlag}
)
</foreach>
</insert>

2、批量select查询语句

<select   id = “getTextPromoteByIds”   parameterType = “java.util.list”  resultMap = “textPromoteMap”>
SELECT
*
FROM SYS_TEXT_PROMOTE
WHERE
TEXT_PUSH_FLAG = 1
AND PROMOTE_ID IN
<foreach collection=”list” item = “item” open=”(” separator=”,” close =”)”>
#{item}
</foreach>
</select>

3、批量update语句。

第一种情况是需更新的值相同:

<update   id = “updatePushStatus”  parameterType = “java.util.List”>
update
SYS_TEXT_PUSH
SET
PUSH_STATUS = 1,
LAST_UPDATE_DATE = NOW()
WHERE
PUSH_ID IN
<foreach collection=”list” item = “item” open=”(” separator=”,” close =”)”>
#{item}
</foreach>
</update>

第二种情况是需更新的值不同:

<update   id = “updatePushStatus”  parameterType = “java.util.List”>
<foreach collection=”list” item = “item” index = “index”>
update
SYS_TEXT_PUSH
SET
PUSH_STATUS = #{item.pushStatus},
LAST_UPDATE_DATE = NOW()
WHERE
PUSH_ID = #{item.pushId}
</foreach>
</update>

MySQL中select、insert、update批量操作语句的更多相关文章

  1. MySQL中select * for update锁表的范围

    MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...

  2. MySQL中select * for update锁表的问题

    MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...

  3. 数据库:Mysql中“select ... for update”排他锁分析

    Mysql InnoDB 排他锁 用法: select … for update; 例如:select * from goods where id = 1 for update; 排他锁的申请前提:没 ...

  4. Mysql中“select ... for update”排他锁(转)

    原帖地址 https://blog.csdn.net/claram/article/details/54023216 Mysql InnoDB 排他锁 用法: select … for update; ...

  5. MySQL中select * for update锁表的问题(转)

    由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料 ...

  6. mysql 中select for update 锁表的范围备注

    mysql的锁表范围测试 1.主键明确时,行级锁: 解释:指定主键并且数据存在时,仅锁定指定的行,其它行可以进行操作 实例:指定了锁定id=1的行且数据存在①,在更新1时lock wait超时②,但是 ...

  7. 数据库中Select For update语句的解析

    ----------- Oracle -----------------– Oracle 的for update行锁 键字: oracle 的for update行锁 SELECT-FOR UPDAT ...

  8. mysql进阶(四)mysql中select

    mysql中select * for update 注:  FOR UPDATE 仅适用于InnoDB,且必须在事务区块(BEGIN/COMMIT)中才能生效. 作用 锁定该语句所选择到的对象.防止在 ...

  9. mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干

    1.mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干 2.一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性).Con ...

  10. mysql 多列唯一索引在事务中select for update是不是行锁?

    在表中有这么一索引 UNIQUE KEY `customer_id` (`customer_id`,`item_id`,`ref_id`) 问1. 这种多列唯一索引在事务中select for upd ...

随机推荐

  1. linux 逆向映射

    逆向映射用于建立物理内存页和使用该页的进程的对应页表项之间的联系,在换出页时以便更新所有涉及的进程.得到物理页基址后,根据pfn_to_page可以将页框转换为page实例,page实例中的mappi ...

  2. Logstash安装介绍

    前言 logstash是ELK日志系统中的一部分,主要承担将收集完成日志进行过滤,并且输出到es的职责. logstash本身也可以作为客户端部署到应用系统的服务器上进行日志收集,但是由于资源开销占用 ...

  3. idea搭建可运行Servlet的Web项目[maven]

    1. new Project File > new > Project… 2. 填写 GroupID\ArtifactID GroupID 是项目组织唯一的标识符,实际对应JAVA的包的结 ...

  4. JavaScript实现预览本地上传图片

    <html> <head> <title> www.jb51.net图片上传预览 </title> <script> function Pr ...

  5. DHCP服务器 出现的故障

    系统版本:Windows Server 2008 R2 Standard 故障现象:近段时间,我们核心网络DHCP服务器,总是发现有掉线重起现象,大约每10分钟至30分钟不定时会重起. 故障代码:关键 ...

  6. FreeSwitch 终端命令详细介绍

    FreeSwitch版本:1.6.9 以下为部分终端命令 alias 语法: alias [add|stickyadd] <alias> <command> | del [&l ...

  7. charles-抓包Andriod 手机的设置

    长按弹出 修改后: charles如果不配置SSL通用证书: 会导致HPPTS协议的域名抓取失败/乱码的现象: 现在SSL越来越多,很多博客都上了SSL,支付相关的行业更是基础配置: charles配 ...

  8. ubuntu 16.04 国内仓库地址

    deb http://mirrors.aliyun.com/ubuntu xenial maindeb http://mirrors.aliyun.com/ubuntu xenial universe ...

  9. spring IOC 分析及实现

    什么是IOC Inversion of Control,控制反转,也成依赖倒置. 反转: 依赖对象的创建被反转,使用IOC之前,对象由自己创建,反转后,由IOC容器获取 IOC容器的工作: 负责创建, ...

  10. 安利一个vps,7美元/年。

    黑色星期五.给大家安利一个vps,7美元/年.配置如下:2 个虚拟化 CPU 2 GB (2048 MB) 专属内存 50 GB RAID-10 受保护硬盘存储 3000 GB (3TB) 月流量 1 ...