zoukankan      html  css  js  c++  java
  • Mybatis中使用UpdateProvider注解实现根据主键批量更新

    Mapper中这样写:

    @UpdateProvider(type = SjjcSqlProvider.class, method = "updateTaskStatusByCBh")
        int updateTaskStatusByCBh(@Param("list") List<String> list);
    

    SjjcSqlProvider中这样写:

    public String updateTaskStatusByCBh(Map<String, Object> parameters) {
            List<String> list = (List<String>) parameters.get("list");
            StringBuilder sb = new StringBuilder();
            sb.append("update db_yw.t_sjjc_task as task ");
            sb.append("set n_zt=6 ");
            sb.append("where task.c_bh in");
            sb.append("(");
            for (int i = 0; i < list.size(); i++) {
                sb.append("'");
                sb.append(list.get(i));
                sb.append("'");
                if (i < list.size() - 1) {
                    sb.append(",");
                }
            }
            sb.append(")");
            return sb.toString();
        }
    

    最后,传入list列表就可以批量的根据主键更新表中的某一个字段了

  • 相关阅读:
    python模拟shell
    10.LIKE 操作符
    9.TOP 子句--mysql limit
    8.INSERT INTO 语句 UPDATE 语句
    7.ORDER BY 子句
    6.AND & OR 运算符
    5.WHERE 子句
    4.SELECT DISTINCT 语句
    3.SELECT 语句
    2.sql分类
  • 原文地址:https://www.cnblogs.com/daleyzou/p/mybatis-updateBatch.html
Copyright © 2011-2022 走看看