zoukankan      html  css  js  c++  java
  • mybatis+oracle如何批量执行多条update

    接口

    public void setStatus(List<Columns> columnsList);

    mapping xml
    mapping 中使用foreach,关于标签的使用,资料非常多,在此不再赘述。例如:

      <update id="setStatus">
            <foreach collection="list" index="index" item="col" open="begin" close=";end;" separator=";">
                UPDATE  ${col.funName}
                <set>
                    STATUS = #{col.status}
                </set>
                <where>
                    del_flag = '0'
                    AND FILLINYEAR = #{col.value}
                    AND UNITID = #{col.id}
                </where>
            </foreach>
        </update>

    注意: 
    1、foreach参数: open="begin" close=";end;" separator=";" 是关键,如果不适用open="begin" close=";end;"会出现如下错误: 
    ### The error may involve defaultParameterMap 
    ### The error occurred while setting parameters 
    2、${col.funName}:这里传入的是表名 所以要使用 ${}对于${}和#{}的使用在此不再赘述。

    结果:

    2018-05-18 09:11:37,787 DEBUG [modules.stat.dao.FillininfoDao.setStatus] - ==>  Preparing: begin UPDATE MOST_STAT_UNITBASEINFO SET STATUS = ? WHERE del_flag = '0' AND FILLINYEAR = ? AND UNITID = ? ; UPDATE MOST_STAT_BASERESOURCES SET STATUS = ? WHERE del_flag = '0' AND FILLINYEAR = ? AND UNITID = ? ;end; 
    2018-05-18 09:11:37,787 DEBUG [modules.stat.dao.FillininfoDao.setStatus] - ==> Parameters: B01(String), 2018(Integer), 62647d208d924ab8aa81ded8db037530(String), B01(String), 2018(Integer), 62647d208d924ab8aa81ded8db037530(String)
  • 相关阅读:
    TCP协议中粘包现象
    python 中socket模块及用法
    网络编程之五层协议
    面向对象的反射和双下方法(魔术方法)
    Centos下的redis安装和使用
    面向对象简介
    supervisor进程管理工具
    redis的持久化
    redis的主从同步及哨兵的用法
    ubuntu修改grub默认启动项
  • 原文地址:https://www.cnblogs.com/ZenoLiang/p/10508455.html
Copyright © 2011-2022 走看看