SQL批量更新中的保证顺序?

时间:2012-02-08 16:00:56

标签: java sql spring jdbctemplate spring-jdbc

假设项目列表包含item1,item2和item3。 DB是否也按此顺序插入我的项目?

List<Item> items = ...
List<Map<String, Object>> batchValues = new ArrayList<Map<String, Object>>();
for (Item item : items) {
    Map<String, Object> namedParameters = ...
    batchValues.add(namedParameters);
}
getNamedParameterJdbcTemplate().batchUpdate(SQL_INSERT_ITEMS, batchValues.toArray(new Map[0]));

2 个答案:

答案 0 :(得分:2)

当然可以,否则它将毫无价值。

顺便说一下,你应该改变这段代码:

batchValues.toArray(new Map[0])

batchValues.toArray(new Map[batchValues.size()])

答案 1 :(得分:1)

关系数据库不维护广告订单。当您查询记录时,您可以使用order by子句指定所需的顺序。如果您需要按照插入记录的方式订购记录,则必须手动将数字存储到记录中的字段中。某些数据库将具有表列的自动增量选项,或者您可以使用的序列生成器(Oracle)。