List<ProductSkuVO> productSkuList = new ArrayList<ProductSkuVO>(); //商品sku对象 ProductSkuVO productSkuVO = null; for (int i = 0; i < jsonArray.size(); i++) { json = jsonArray.getJSONObject(i); //商品的sku编号 skuId = json.getString("sku_id"); //商品的购买数量 stockNumStr = json.getString("stock_num"); if(StrUtil.isNotNull(stockNumStr)){ stockNum = new BigDecimal(stockNumStr); } productSkuVO = new ProductSkuVO(); productSkuVO.setSKU_ID(skuId); productSkuVO.setSTOCK_NUM(stockNum); productSkuList.add(productSkuVO); } Map<String,Object> parameter = new HashMap<String, Object>(); parameter.put("parameters", productSkuList); //循环update,回归库存 int count=productSkuService.modifyProductSkuById(parameter); if(count == jsonArray.size()){ jsonResult.put("code", -1); //批量执行成功 }else{ jsonResult.put("code", 1); //批量执行失败 }
public int modifyProductSkuById(Map<String,Object> map){ int i=this.baseDao.update("updateSkuById", map, ProductSkuVO.class); return i; }
<!-- 下单后1个小时 库存回归 --> <update id="updateSkuById" parameterType="map"> UPDATE BIZ_PRODUCT_SKU SET STOCK_NUM = CASE <foreach collection="parameters" item="item"> WHEN SKU_ID = #{item.SKU_ID} THEN STOCK_NUM + #{item.STOCK_NUM} </foreach> END WHERE SKU_ID IN <foreach collection="parameters" item="item" open="(" separator="," close=")"> #{item.SKU_ID} </foreach> </update>
我这边是将list集合放到了map里面,然后通过键值对的方式用parameters 来批量修改,但我总觉得这段代码写的有问题,看看sql,能不能直接传一个list过去呢?好吧,我来试试..
7月22日:今天在测试这个功能的时候发现一个问题,当where条件相同的时候只能成功update一个。上面的代码中 假如有多个skuid是相同的那么它只能成功修改一个。我问了一个朋友,他说一条sql满足批量更新的操作,所以我更改了sql语句,如下;
<!-- 下单后1个小时 库存回归 --> <update id="updateSkuById" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> UPDATE BIZ_PRODUCT_SKU <set> STOCK_NUM=STOCK_NUM+#{item.STOCK_NUM} </set> where SKU_ID = #{item.SKU_ID} </foreach> </update>
相关推荐
mybatis批量添加的时候报错总结报错 parameter'_frch_item_0 not found
mybatis 框架批量增删改代码 示例 含java与xml
需要注意的是,MyBatis批量插入可能会出现内存不足的问题,因此需要提前修改MySql的配置文件,增加max_allowed_packet的值以避免内存不足的问题。 MyBatis批量插入是一种高效的数据插入方式,可以大大提高插入速度...
MyBatis Plus 是 MyBatis 的一个扩展,它在 MyBatis 的基础上提供了更多的便捷功能,包括但不限于批量操作。在数据库交互中,批量操作能够显著提高效率,减少数据库连接的开销。本测试主要探讨了 MyBatis Plus 中的...
在"mybatis数据操作(增删改查+批量操作)"这个主题中,我们将深入探讨如何利用MyBatis进行基本的数据操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select),以及如何执行批量操作。...
Mybatis批量修改操作代码详解 Mybatis是一款流行的持久层框架,提供了批量修改操作的功能。本文将详细介绍Mybatis批量修改的操作代码,包括批量修改的基本语法、参数说明、trim标签的使用等。 一、基本语法 ...
批量修改同样通过 `session.insert()` 方法完成,但需要注意,这里可以使用 `<update>` 标签。示例中提供了两种方式: - 实例1: 这里通过 `id` 的集合来更新特定记录的 `name` 字段。XML 映射文件中的 `<update>`...
Mybatis Plus 是 Mybatis 的一个扩展工具,它在 Mybatis 的基础上提供了许多便捷的功能,包括自动 CRUD 操作、条件构造器、批量操作等。在实际的项目开发中,批量插入和批量更新是常见的数据处理场景,尤其是在处理...
这个问题的描述是关于如何在MyBatis中正确地执行一个批量插入操作,其中一个字段的值依赖于对同一张表的SELECT查询结果。 原始的XML映射文件中的SQL插入语句尝试在FROM子句中直接更新目标表'chat_messages',这是不...
Mybatis批量更新三种方式的实现 Mybatis是一款流行的持久层框架,它提供了强大的数据库交互能力。其中,批量更新是一种常见的操作,能够提高数据库操作的效率。下面将介绍Mybatis批量更新三种方式的实现。 方式一...
本篇将深入探讨如何在Spring Boot项目中整合Mybatis,实现对SQL Server数据库的跨库批量插入操作。 首先,我们需要在Spring Boot项目中引入相关的依赖。对于Mybatis的支持,我们需要添加Mybatis和其Spring Boot ...
这篇文章将详细讲解如何在MyBatis的Mapper配置文件中实现批量插入。 首先,批量插入的数据通常来源于一个集合,如List对象,因此在Mapper接口中,我们需要定义一个方法接收这样的参数。例如,我们可以创建一个`...
本文将详细分析Mybatis批量更新的报错问题及其解决方法。 首先,报错可能由于不支持批量更新操作的JDBC配置引起。在MySQL中,如果不开启`allowMultiQueries`参数,Mybatis尝试执行包含多个SQL语句的批量更新时,会...
MyBatis PostgreSQL 批量删除操作方法 MyBatis 是一个基于 Java 的持久层框架,它提供了一个简单的方式来交互数据库。在本文中,我们将介绍如何使用 MyBatis 实现 PostgreSQL 批量删除操作。 PostgreSQL 简介 ...
Mybatis,作为一款强大的Java持久层框架,提供了便捷的SQL映射功能,其中包括批量修改的方法。本篇文章将深入探讨如何在Mybatis中利用`<foreach>`标签实现SQL批量修改。 批量更新通常比单条更新更有效率,因为它...
在这个自定义版的MBG插件中,它特别加入了中文注释,使得代码更符合中国开发者阅读习惯,并且扩展了功能,支持批量插入和批量修改操作,这对于处理大量数据时非常实用。此外,它还能处理一对多和多对多的关系映射,...
"Mybatis中使用updateBatch进行批量更新" Mybatis是一个基于Java的持久层框架,提供了批量更新的功能,以提高数据库操作的效率。在Mybatis中,可以使用updateBatch方法来进行批量更新,下面将详细介绍Mybatis中使用...
10. 插件扩展:Mybatis支持插件扩展,通过实现Interceptor接口,可以拦截并修改Mybatis的执行过程,如PageHelper分页插件。 综上所述,Mybatis 3.2.8版本不仅提供了基本的SQL映射功能,还具备强大的动态SQL支持、...
Mybatis-Plus不修改用户写的SQL语句,而是通过扩展的方式,例如插件,来增强原有功能。 7. Mybatis-Plus的适用场景: Mybatis-Plus非常适合于那些项目中有大量的单表CRUD操作的场景。开发者在这些场景下使用...
MyBatis Plus是一个基于MyBatis框架的扩展工具,它旨在简化常见的MyBatis操作,如插入、更新、删除和查询。这套学习资料包含了MyBatis Plus的源码和笔记,是深入理解并掌握该框架的宝贵资源。下面将详细阐述MyBatis ...