如何将带有对象的准备语句 sql 字符串转换为精确的 sql 字符串?
How to convert the prepare statement sql string with an Object to the exact sql string?
我正在使用 spring。我有很多更新步骤,有没有办法为此使用 batchUpdate
?
原创
jdbcTemplate.update("UPDATE USER SET name = ? WHERE user_id = ?", new Object[] {name, id});
jdbcTemplate.update("UPDATE USER2 SET name = ? WHERE user_id = ?", new Object[] {name, id2});
jdbcTemplate.update("UPDATE USER3 SET name = ? WHERE user_id = ?", new Object[] {name, id3});
如何使用batchUpdate
getJdbcTemplate().batchUpdate(sql);
因为batchUpdate
的参数是Array[]
。如何将带有对象的准备语句 SQL 字符串转换为精确的 SQL 字符串?
int\[\] batchUpdate(String... sql)
是错误的工作方法。
它适用于你有一堆不带参数的不同 SQL 语句的情况,你想一次性执行这些语句。
您需要使用其他 batchUpdate
方法之一。
如果不需要控制batch size
public int[] batchUpdate(String sql, List<Object[]> batchArgs)
应该工作正常。调用将如下所示:
jdbcTemplate.update(
"UPDATE USER SET name = ? WHERE user_id = ?",
Arrays.asList(
new Object[] {name, id},
new Object[] {name, id2},
new Object[] {name, id3}
)
);
另请查看允许提供批量大小、参数类型或参数设置器的其他变体,这些变体允许单独为批量的每个部分设置参数。
我正在使用 spring。我有很多更新步骤,有没有办法为此使用 batchUpdate
?
原创
jdbcTemplate.update("UPDATE USER SET name = ? WHERE user_id = ?", new Object[] {name, id});
jdbcTemplate.update("UPDATE USER2 SET name = ? WHERE user_id = ?", new Object[] {name, id2});
jdbcTemplate.update("UPDATE USER3 SET name = ? WHERE user_id = ?", new Object[] {name, id3});
如何使用batchUpdate
getJdbcTemplate().batchUpdate(sql);
因为batchUpdate
的参数是Array[]
。如何将带有对象的准备语句 SQL 字符串转换为精确的 SQL 字符串?
int\[\] batchUpdate(String... sql)
是错误的工作方法。
它适用于你有一堆不带参数的不同 SQL 语句的情况,你想一次性执行这些语句。
您需要使用其他 batchUpdate
方法之一。
如果不需要控制batch size
public int[] batchUpdate(String sql, List<Object[]> batchArgs)
应该工作正常。调用将如下所示:
jdbcTemplate.update(
"UPDATE USER SET name = ? WHERE user_id = ?",
Arrays.asList(
new Object[] {name, id},
new Object[] {name, id2},
new Object[] {name, id3}
)
);
另请查看允许提供批量大小、参数类型或参数设置器的其他变体,这些变体允许单独为批量的每个部分设置参数。