Mybaties批量修改每一条不同数据

原创 2015年07月08日 09:11:59

先建立实体,我需要用到的修改的数据set后面的和where条件后的参数

public class FcUpdata {
    private Integer subsize;//我要修改的set后面的值是变量哦
    private Integer id;//我要修改的对应的id

impl下面的数据

/**创建一个修改传值的参数集合对象*/
List<FcUpdata> list = new ArrayList<>();
for (int i=0;i<updataId.length;i++) {
    /**获取对应的subsizeparents_id,对应删除*/
    FcUpdata fcu = new FcUpdata(updataIdSubsize[i], updataId[i]);
    list.add(fcu);
}
Mapper.doUpdate(list);

这是打印出来的结果,你可以对比下面的mybaties数据

UPDATE 表名TableName
SET subsize =CASE
WHEN ? THEN subsize-?
WHEN ? THEN subsize-?
WHEN ? THEN subsize-?
END
WHERE id in ( ? , ? , ? )

138(Integer), 3(Integer),
145(Integer), 2(Integer),
148(Integer), 4(Integer),
138(Integer), 145(Integer), 148(Integer)

mybaties写法,(

prefix="subsize =CASE id"
)这里的case 后面的id你必须要写,这是标记当前执行到另一条语句了,看看case end 语句的结构你就了解它怎么工作的了。

<update id="doUpdateSubSize">
    UPDATE 表名TableName
    <trim prefix="SET" suffixOverrides="">
        <trim prefix="subsize =CASE id" suffix="END">
            <foreach collection="item" item="items" index="index">
                WHEN #{items.id} THEN subsize-#{items.subsize}
            </foreach>
        </trim>
    </trim>
    WHERE id in
    <foreach collection="item" item="items" open="(" separator="," close=")" index="index">
        #{items.id}
    </foreach>
</update>

版权声明:本文为博主书香代码原创文章,未经博主允许不得转载。

相关文章推荐

mysql 批量修改表中字段数据成不同的值 用一个表更新另一个表的方法

最近在工作的时候突然想到了一个问题,就是mysql如何才能实现批量更新多条记录的同一个字段为不同值,发现其中的学问还是挺多的,所以就把网上总结下来分享给大家,有需要的朋友们可以参考借鉴,下面来一起看看...

MySQL批量更新不同表中的数据

今天翻到以前写的批量更新表中的数据的存储过程,故在此做一下记录。 当时MySQL中的表名具有如下特征,即根据需求将业务表类型分为了公有、私有和临时三种类型,即不同的业务对应三张表,而所做的是区分出是...

android SQLite 批量插入数据慢的解决方案 (针对于不同的android api 版本)

SQLite,是一款轻型的数据库,被广泛的运用到很多嵌入式的产品中,因为占用的资源非常少,二其中的操作方式几乎和我们接触的数据库不多,甚至只有几百K的他自然会被需求者青睐,下面讲一下在这样的轻型数据库...

spring+mybaties 配置多数据源

在实际的开发中遇到了需要2个数据源的情况。这里我们就需要配置多数据源了。 1  首先配置多数据源有2种实现方式      1)简单方式:一般情况下,我们可以配置多个数据源,然后为每个数据源写一套对应的...

springboot 简单的整合mybaties实现web数据查询

springboot 简单的整合mybaties实现web数据查询

web前端之Ajax遍历json后对每一条数据进行相应的修改和删除

web前端之ajax遍历json后对每一条数据进行相应的修改和删除$.ajax({ url: "/business/findpersons.json", dataType: "json...

问题之——使用merge修改已存在数据,却添加了一条数据——解决方案

merger的基本用法: 用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表(原数据表,source table)或子查询的连接条件对另外一张(目标表,target ta...

mysql一条sql查出多个条件不同的sum或count

最近做java后台遇到很多问题记录一下,有个需求是在一条sql中同时统计到几条条件不一样的sql或count,希望能帮助到需要的朋友,上代码和效果图: select  sum(pzgwjscd) as...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)