mybatis 批量更新

 <update id="updateBaBaBa" parameterType="java.util.Map">
     <foreach collection="go" index="index" item="item"  separator=";" >
         update tenant_account set remainder = remainder + #{item.sumM},order_finished = order_finished+#{item.countO},remainder_update_time = #{item.remainder_update_time} where the_super_id = #{item.tId}
     </foreach>
  </update>

参数

        /**
         *
         *      tId  tenandId
         *      sumM
         *      countO
         *      remainder_update_time
         *
         *      tId  tenandId
         * go - sumM
         *      countO
         *      remainder_update_time
         *
         *      tId  tenandId
         *      sumM
         *      countO
         *      remainder_update_time
         *
         */
        Map<String, List<Map<String, String>>> va = new LinkedHashMap<>();

        List<Map<String, String>> list = new LinkedList<>();

        String thisOne = null;
        if(null == table){
            //前一天的临时表
            if (DBCWriteVerticle.currentTempTable.equals("orders_temp1")) {
                thisOne = "orders_temp4";
            } else if (DBCWriteVerticle.currentTempTable.equals("orders_temp2")) {
                thisOne = "orders_temp1";
            } else if (DBCWriteVerticle.currentTempTable.equals("orders_temp3")) {
                thisOne = "orders_temp2";
            } else if (DBCWriteVerticle.currentTempTable.equals("orders_temp4")) {
                thisOne = "orders_temp3";
            }
        }else {
            thisOne = table;
        }
        for (String tId : tenantIds) {
            Map<String, String> param = new HashMap<>();

            param.put("tableName",thisOne);
            param.put("the_super_id", tId);

            Map<String, Long> re = sqlSession.selectOne(MybatisNamespace.ordersTemp_selectTotal, param);

            Map<String, String> foIn = new LinkedHashMap<>();
            foIn.put("tId", tId);
            foIn.put("sumM", re.get("sumM") + "");
            foIn.put("countO", re.get("countO") + "");
            foIn.put("remainder_update_time", new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date().getTime()));


            list.add(foIn);

        }


        va.put("go", list);

        sqlSession.close();

        System.out.println("         111111111112222222222  " + va.get("go").get(0).get("sumM"));

        SqlSession sqlSessionUpdate = null;
        boolean ok = true;
        try {
            sqlSessionUpdate = sqlSessionFactory.openSession(false);
            sqlSessionUpdate.update(MybatisNamespace.tenantAccount_updateBaBaBa, va);

 

posted on 2018-03-27 09:12  --LP--  阅读(222)  评论(0编辑  收藏  举报

导航