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>

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

Oracle使用Mybatis实现批量插入或修改数据(Oracle)

Mybatis本身是很灵活的,因为可以自己在XML文件中编写sql进行操作,那就可以一次性将插入到数据库中,这样只用向数据库提交一次,性能也可以提高不少。下面来看一个例子:   首先,在DataMap...
  • diweikang
  • diweikang
  • 2017年05月16日 10:09
  • 450

mybatis批量插入和修改sql语句?

修改参数类型定义成数值就可以了。比如 String[] productIDs={'1','2','3','4','5'}    UPDATE  表名 SET status='1'      WH...
  • lv_hang515888
  • lv_hang515888
  • 2016年08月31日 20:37
  • 1431

Oracle 批量修改数据-Merge 使用小结

在近期的需求中遇到了匹配两表的关联字段,修改主表的字段业务。由于是批量修改接触到了Oracle的merge遇到新的知识,本人首先去了解了一下基本概念:MERGE语句是SQL语句的一种。在SQL Ser...
  • x2570799116
  • x2570799116
  • 2017年12月21日 10:04
  • 119

存储过程1——读取数据

protected System.Web.UI.WebControls.DataGrid DataGrid1;  SqlConnection conn=new SqlConnection(System...
  • clm0010
  • clm0010
  • 2006年01月10日 23:12
  • 630

mybatis 批量增删改查的几种情况

由于项目中频繁的使用批量操作,所以拿出来总结一下,供以后复习参考~ 批量操作,基本是利用List(或array)或者Map封装好参数后,作为parameterType,然后使用foreac...
  • wang2317388
  • wang2317388
  • 2016年03月14日 15:43
  • 1335

sql 批量修改,根据不同的条件来修改数据

做系统经常遇上批量对数据处理,  di
  • guo449211721
  • guo449211721
  • 2014年04月15日 16:05
  • 4722

select三个值选中一个值对应一个值

// $(".tip select[name=t-inTypes]")[0].selectedIndex = rs.addToSetmenu ? 0 : 1; if(rs....
  • kakaxiD
  • kakaxiD
  • 2016年07月14日 11:12
  • 288

mysql根据不同的条件对数据进行批量修改(navicat)

为财务部门的雇员加薪,5年以下加5%,5年以上加3%
  • dingse
  • dingse
  • 2017年09月25日 12:40
  • 342

Mysql取每小时的一条记录

SELECT * FROM ( SELECT s.sensor_data,s.get_date,s.sensor_name, DATE(get_date) A...
  • huguobao520
  • huguobao520
  • 2016年04月14日 14:15
  • 631

数据库_MySQL_利用 存储过程 对 数据表 中的 每一条记录 进行业务处理

今天BOSS给了一个需求,需要将一些公有数据在用户创建账户的时候进行导入,并进行相应的业务处理,由于流程比较复杂,特此记录一下: 需求嗯 是这样的: 当企业用户创建一个账户的时候,默认应提供一系列...
  • u010003835
  • u010003835
  • 2016年01月12日 13:45
  • 1191
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mybaties批量修改每一条不同数据
举报原因:
原因补充:

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