【发布时间】:2014-03-08 21:05:58
【问题描述】:
我有一个 ArrayList,比方说按定义的顺序有 4 行。我想将这 4 行相应地插入到 Oracle 表中。但奇怪的是,它进入了表格但顺序错误。
for (int x = 0; x < myArray.size(); x++) {
//Some validation
//insert statement
MyJB myJB = (MyJB) myArray.get(x);
String query = "insert into table X values(myJB.getColumn1,myJB.getColumn2)";
log.debug(query);
stmt = conn.prepareStatement(query);
stmt.executeUpdate();
stmt.close();
}
日志将显示正确的顺序,即从 x=0 到 x=3。 但是 select * from table X 将产生 4 行但顺序不同
如何强制Oracle按照ArrayList中的正确顺序插入?
谢谢
- ArrayList = row0,row1,row2,row3
- 从表 X 中选择 * = row2,row3,row0,row1
【问题讨论】:
-
你说的是什么顺序?如果没有
ORDER BY子句,SELECT语句的结果顺序是不确定的——行可以以任意顺序返回,并且每次执行时顺序可以改变。如果您关心从SELECT语句返回的订单行,请使用ORDER BY子句。 -
是ArrayList的顺序。数据来自 ArrayList 而不是表,所以我不能做“order by”。