问题标签 [batch-updates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 执行插入/删除批处理spring-jdbc/mysql的最佳方法
首先,我会尝试描述我愿意做什么,然后,我会问我的问题。我需要执行以下操作:
- 列出与某些条件对应的所有行
- 做一些测试(例如:检查它是否尚未插入),如果测试通过,则将行插入另一个数据库
- 删除行(是否通过测试)
以下是我的实现
服务方法被标记为事务性的。
在我的 DAO 中,deleteList 和 insertList 的方法非常相似,所以我将在这里放置插入方法。
}
我不确定执行此类操作的最佳方法,我在这里读到,在循环内调用更新可能会减慢系统速度(特别是在我的情况下,我一次将有大约 100K 插入/删除)。我想知道 DAO 中的这些额外循环是否不会进一步减慢我的系统,如果在处理该批次时反复发生问题会发生什么(我还考虑将测试从服务移动到 DAO,以便只有一个循环和一个额外的测试,我真的不知道这是否是个好主意)。所以,我想听听你的建议。非常感谢。
PS:如果您需要更多详细信息,请随时询问!
hibernate - 休眠批量更新
我正在尝试更新 Java 实体的集合,但 Hibernate 执行批量更新的顺序会导致约束冲突异常。我将使用下面的例子来解释这种情况。
实体 Student Int id String Name String deskID
规则:2名学生不能有同一张桌子
第一次交易:插入 2 名学生如下 Student 1 Id:1 Name:ABC DeskId:D1
学生 2 ID:2 姓名:DEF DeskId:D2
现在,在此之后,我决定更新两个学生实体以交换他们的课桌,并将一组更新的学生实体发送到休眠更新学生 1 ID:1 名称:ABC DeskId:D2
学生 2 ID:2 姓名:DEF DeskId:D1
但这会导致违反约束异常,因为我认为更新一次只发生一条记录。
我正在使用 JTA 实体管理器来管理事务。我要更新的代码看起来像这样
mysql - mybatis @insert 重新运行批量更新
我正在尝试在批处理会话对象上运行自定义 sql
但是我的以下代码(负责刷新和提交批次)有一些神秘的行为
它执行完美,并且 batchSqlSession.flushStatements() 确实返回了已执行语句的数量。尽管成功执行了上一个批处理,但此代码batchResult = batchSqlSession.flushStatements(); 和batchSqlSession.commit(); 在下一次迭代中重新运行相同的旧批次。为什么 ?
java - MySQL Batchupdate() 与 ON DUPLICATE KEY UPDATE
我正在使用batchUpdate()
在表中插入多条记录。根据要求,如果在插入主键时存在重复值,则应使用最新接收到的数据对其进行更新,因此我试图ON DUPLICATE KEY UPDATE
在INSERT
语句中使用。当ON DUPLICATE KEY UPDATE
我使用单个插入时效果很好,但是当我batchupdate()
用于相同的查询时它会出错。错误如下:
测试用例:testVehicleTracking(com.em.ert.test.TrackingServiceTest): Caused an ERROR PreparedStatementCallback; 错误的 SQL 语法 [INSERT INTO test_tracking (sino, material_id, material_type, vehicle_position, rundown_num, msg_type, msg_status, msg_timestamp) VALUES(?, ?, ?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE]; 嵌套异常是 java.sql.BatchUpdateException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法
我不明白为什么ON DUPLICATE KEY UPDATE
不能使用 batchupdate()。理想情况下应该是这样,因为据我所知,工作没有什么不同。
我应该怎么做才能实现这一目标?
java - 尝试使用 Spring 的 JdbcTemplate 删除和插入数据
我在尝试使用 Spring 的 JdbcTemplate 中的 batchUpdate 时遇到问题。
问题是我想执行两个 SQL 操作:一个 DELETE 方法(清除我的表),然后一个 INSERT 方法。我第一次拨打电话(来自jsp)时它工作正常。但是从第二次尝试开始,当我尝试调用时,没有调用或执行 DELETE 过程,只是 INSERT 过程,导致唯一约束异常。
首先我尝试了这个:
然后我尝试了这个:
我认为这可能是一些 Spring Transaction 问题。这是我在applicationContext.xml上的 DAO 程序的配置,非常简单:
有什么想法或建议吗?
redis - REDIS/jedis 更新排序集中所有成员的分数
在 REDIS 中增加中等大小的排序集的最佳方法是什么?(最好使用 java 驱动 JEDIS) Set 中有大约 100-200K 的记录。我想将他们的分数增加一个给定的双数。
前
之后(增加 1)
我想出的唯一可能的解决方案是:
- 通过网络获取所有已排序的集合(例如 A)内容。(REDIS -> 应用程序)。
- 创建一个管道,在同一个 setA 中使用 ZADD 或 ZINCRBY 在循环中递增它们
- 然后执行管道。
还有另一种/更好的方法吗?
更新
以下是如何在 REDIS 中使用 EVAL 和 Lua 执行 for 循环以递增所有已排序的集合成员。
将其保存到字符串中并使用您的驱动程序(在本例中为 java)运行 eval。执行什么也不返回。
使用绝地武士
oracle - 使用 Oracle 视图进行批量更新
我有一个复杂的 Oracle 视图,执行大约需要 2 - 3 秒。
我正在尝试将 Oracle 视图中的值插入到表中。
我正在使用 JdbcTemplate BatchUpdate() 将多个值插入表中。
在 BatchUpdate() 中,PreparedStatement 用于设置值。
使用 Oracle 视图会导致任何性能问题吗?
通过使用 PreparedStatement,可以预编译 SQL 语句。但是在 VIEW 的情况下,每次触发插入查询时都会执行视图吗?
.net - 批量更新:StatementType 枚举值,4 无效/无效操作。连接已关闭
我正在使用企业库的数据访问块。
我的代码正在进行大批量更新,但对于我们的一位客户来说,它总是以下列异常之一告终:
和
spring - Spring JdbcTemplate batchUpdate 问题总是返回-3
我正在尝试在 Springs jdbcTemplate 上使用 batchUpdate,但我得到的只是一个 -3 的 int 数组。下面是我正在运行的代码。数组列表“batch”包含插入和更新。
结果数组包含 [-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, ... ]
使用 - Spring 3.1.2.RELEASE - jtds 驱动程序 1.3.0 - SQL Server 2005
有没有人遇到过这个?