项目中经常的需要使用批量操作语句对数据进行操作,使用批量语句的时候需要注意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. centos7 + php7

    安装php7 https://www.zntec.cn/archives/centos7-lamp.html composer安装tp curl -sS https://getcomposer.org ...

  2. FEX(Fabric Extender)

    一.FEX Cisco Nexus 2000 FEX作为N5K.N6K.N7K.FI的一个远程线卡,单独的2K是没有网管功能的,必须配合父系交换机使用. 主要解决TOR和EOR的问题,TOR,接线简单 ...

  3. instrument 之 core animation

    1.Color Blended Layers 图层混合 需要消耗一定的GPU资源,避免设置alpha小于1,省去不必要的运算 2.Color Hits Green and Misses Red 光栅化 ...

  4. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序

    BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...

  5. request.getParameterNames()和request.getParameterValues()

    request.getParameterNames()方法是将发送请求页面中form表单里所有具有name属性的表单对象获取(包括button).返回一个Enumeration类型的枚举. 通过Enu ...

  6. 与图论的邂逅03:Lengauer-Tarjan

    回想一下,当我们在肝无向图连通性时,我们会遇到一个神奇的点——它叫割点.假设现在有一个无向图,它有一个割点,也就是说把割点删了之后图会分成两个联通块A,B.设点u∈A,v∈B,在原图中他们能够互相到达 ...

  7. Python中的sys.path.append()

    当我们导入一个模块时:import  xxx,默认情况下python解析器会搜索当前目录.已安装的内置模块和第三方模块 当运行脚本文件和导入模块不再同一目录下 import sys sys.path. ...

  8. JQ得到当前登录城市和天气

    $(function () { findWeather(); }); function findWeather() { var cityUrl = 'http://int.dpool.sina.com ...

  9. 我的python思考

    1.因为例如线性代数之类的数学题较难解决,会耽误我很长时间,所以我希望课程涉及关于数学的库的使用:因为各种考试,例如英语四六级甚至研究生考试各种单词或者关键词都会有使用频率,所以我希望涉及爬虫的应用. ...

  10. 深入浅出Java探针技术1--基于java agent的字节码增强案例

    Java agent又叫做Java 探针,本文将从以下四个问题出发来深入浅出了解下Java agent 一.什么是java agent? Java agent是在JDK1.5引入的,是一种可以动态修改 ...