zoukankan      html  css  js  c++  java
  • Ibatis的批量处理iterateiterate标签


    iterate标签
    prepend-可被覆盖的SQL语句组成部分,添加在语句的前面(可选)

    property-类型为java.util.List的用于遍历的元素(必选)

    open-整个遍历内容体开始的字符串,用于定义括号(可选)

    close-整个遍历内容体结束的字符串,用于定义括号(可选)

    conjunction-每次遍历内容之间的字符串,用于定义AND或OR(可选)

    iterate-遍历类型为java.util.List(或数组)的元素。

    Java代码

    /**
    * 批量更新测试方法
    *
    @param map
    */
    public void updateListTest(){

    Map
    <String, Object> map=new HashMap<String, Object>();

    List
    <User> userList=new ArrayList<User>();

    User user1
    =new User();
    user1.setUsername(
    "tom");
    user1.setUserpwd(
    "000");
    User user2
    =new User();
    user2.setUsername(
    "tom");
    user2.setUserpwd(
    "222");
    User user3
    =new User();
    user3.setUsername(
    "tom");
    user3.setUserpwd(
    "333");

    userList.add(user1);
    userList.add(user2);
    userList.add(user3);

    map.put(
    "userList", userList);
    map.put(
    "username", "tom");
    int res=getSqlMapClientTemplate().update("updateListTest", map);
    System.out.println(
    "res----"+res);
    }
    public static void main(String[] args) {
    ApplicationContext context
    =new ClassPathXmlApplicationContext("applicationContext.xml");
    UserDAO dao
    =(UserDAO) context.getBean("userDAO");
    dao.updateListTest();
    }

    sql文件


    <!-- 批理更新 -->
    <update id="updateListTest" parameterClass="map">
    update user set address='批理处理' where username=#username# and userpwd in
    <iterate property="userList" open="("
    close
    =")" conjunction=",">
    $userList[].userpwd$
    </iterate>
    </update>
    <!-- 批量更新 -->
    <update id="updateListTest1" parameterClass="map">
    update user set address='批理处理' where username=#username#
    <iterate prepend="and" property="userList" open="("
    close
    =")" conjunction="or">
    age=$userList[].userpwd$
    </iterate>
    </update>
    </sqlMap>

    by archie
  • 相关阅读:
    JavaScript 基本类型值-Undefined、Null、Boolean
    Git学习之路(6)- 分支操作
    Git学习之路(5)- 同步到远程仓库及多人协作问题
    setTimeout小总结
    Git学习之路(4)- 撤销操作、删除文件和恢复文件
    Git学习之路(3)-提交文件到三个区
    Git学习之路(2)-安装GIt和创建版本库
    Git学习之路(1)-Git简介
    两种常见挂载Jenkins slave节点的方法
    rabbitmq集群节点操作
  • 原文地址:https://www.cnblogs.com/archie2010/p/2017284.html
Copyright © 2011-2022 走看看