您现在的位置是:首页 > 正文

MyBatis学习总结(10)——批量操作

2024-02-01 01:45:20阅读 1

一、mybatis中的批量操作

   批量操作核心就是一次传入多个数据然后进行相关操作,增删改查中掌握其中一个其他的也不成问题

1、最新在做的短信平台,要批量插入群发的短信记录:


当然批量操作还有:批量删除,更新,插入,更新。

  1. 批量删除:

     <delete id= "deleteBatchByXXX" parameterType= "list">

           delete from 表名 where groupon_id in

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

                open= "(" close =")" separator=",">

                #{item}

           </foreach >

           </delete >

    注意,foreach是循环,用来读取传入的list参数。批量处理是parameterType的类型必须要注意。foreach标签中的collection属性表示传入的是什么集合类型。item表示的是集合中的一个量类似于

    List<String>list;

    for(String str:list){

         ……

    }

    item就相当于str的作用,用来遍历collection。index就是集合的索引。open表示标签以什么开始,close表示标签以什么结束。seprator表示元素之间的间隔。

  2. 批量插入:

     <insert id="insertBatch" >

           insert into 表名 ( uid, groupon_id, create_time, receive_time) values

        <foreach collection="list" item= "item" index ="index" separator=",">

           (#{item.uid,jdbcType=BIGINT}, #{item.grouponId,jdbcType=BIGINT},

          #{item.createTime,jdbcType=INTEGER}, #{item.receiveTime,jdbcType=INTEGER})

        </foreach >

     </insert>

    用法基本同批量删除,这里需要注意item.XXX表示获取该对象的XXX属性。

  3. 批量更新:

    <update id= "updateSubmitTimeByUids" parameterType= "map">

        update 表名

        set submit_time = #{submitTime,jdbcType=BIGINT} where uid in

        <foreach collection="list" item= "uid" index ="index"

                open= "(" close =")" separator=",">

                #{ uid}

         </foreach >

        </update >

    用法和之前的基本相同,但是需要注意传入的参数是map类型。

          

  4. 批量查询:  <select id="selectBySomePoiIds" resultType="list" parameterType="java.util.Map">      SELECT <include refid="Base_Column_List" /> FROM 表名      WHERE poi_id in        <foreach collection="poiIds" item="poiId" index="index" open="(" close=")" separator=",">            #{poiId}        </foreach>          AND pass_uid = #{passUid}          <if test="status != null">            AND status = #{status,jdbcType=BIGINT}           </if>  </select>

    注意标签的用法和上面的大同小异,都是通过传入一个集合对象来进行值得批量查询。


转载于:https://my.oschina.net/zhanghaiyang/blog/593744

网站文章

  • 【机器学习】混淆矩阵详细介绍(代码+含义+解释)

    【机器学习】混淆矩阵详细介绍(代码+含义+解释)

    文章目录一瞥图形介绍重要概念混淆矩阵延伸出的各个评价指标关键术语图形介绍同样的道理,这里我们采用recall来计算模型的好坏,也就是说那些异常的样本我们的检测到了多少,这也是咱们最初的目的!这里通常用混淆矩阵来展示。混淆矩阵(confusion matrix)衡量的是一个分类器分类的准确程度。理解其概念本身容易理解,但一些特定术语易被混淆。混淆矩阵适用于包含多个分类器的问题,本文为了让读...

    2024-02-01 01:45:05
  • android settext文字换行n,自定义TextView,解决文字换行,\n换行符换行,导致高度计算不对问题(计算ListView高度)...

    看了这篇文章之后 确实 楼主写的 要比上边的一段好一些 后来发现还是有计算换行的问题。发现这篇文章 http://www.jianshu.com/p/d916a667c611有说关于TextView ...

    2024-02-01 01:44:58
  • 并发编程-导致JVM内存泄漏的ThreadLocal

    并发编程-导致JVM内存泄漏的ThreadLocal

    JVM利用设置ThreadLocalMap的Key为弱引用,来避免内存泄露。JVM利用调用remove、get、set方法的时候,回收弱引用。当ThreadLocal存储很多Key为null的Entr...

    2024-02-01 01:44:30
  • Gson将json转Map 浮点型数据精度丢失问题

    Gson将json转Map 浮点型数据精度丢失问题

    今天是1024节,写篇博客纪念下(其实就是想点亮1024勋章,哈哈哈),想到前段时间做flink的数据采集遇到的json转换数值精度问题导致消费端数据转换异常逻辑很简单,就是要将一段json格式的报文转成map,随手用了Gson来转换:Map map=gson.fromJson(mapJson,Map.class);报文中的value值是整型(比如1024),但是转换完就变成...

    2024-02-01 01:44:24
  • list @size 验证_第33期:上海自来水来自海上,回文字符串验证!

    list @size 验证_第33期:上海自来水来自海上,回文字符串验证!

    我准备了 1000 本电子书和计算机各领域高清思维导图 100 张,关注后回复【资源】,即可获取!更可回复【内推】加入 BAT 内推群!01、题目示例见微知著,发现一组数据很有趣,分享给大家。leetcode 第一题通过次数为 993,335,第二题通过次数为 396,160,第三题通过次数为 69,508。我想说什么,请自己悟。第125题:验证回文串给定一个字符串,验证它是否是回文串,...

    2024-02-01 01:44:18
  • PTA练习7-3 将数组中的数逆序存放 (20分)

    本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。输入样例:410 8 1 2输出样例:2 1 8 10#include ...

    2024-02-01 01:43:46
  • 怎么让steam允许访问自己的计算机,科技教程:电脑steam软件如何解决好友网络无法访问...

    怎么让steam允许访问自己的计算机,科技教程:电脑steam软件如何解决好友网络无法访问...

    如今越来越多的小伙伴对于电脑steam软件如何解决好友网络无法访问这方面的问题开始感兴趣,看似平静的每一天,在每个人身上都在发生着各种各样的故事,因为大家现在都是想要了解到此类的信息,那么既然现在大家...

    2024-02-01 01:43:39
  • shell日期格式Demo

    shell校验日期格式是否合法

    2024-02-01 01:43:32
  • mstar android 怎么连接电脑,Android:Mstar平台 HDMI OUT 静音流程

    一、framework层1. APP调用 AudioManager 的adjustStreamVolume() 接口实现在: frameworks\base\services\core\java\co...

    2024-02-01 01:43:04
  • Docker优化下载镜像速度

    代码】Docker优化下载镜像速度。

    2024-02-01 01:42:59