我使用JDBC将一些值插入表中。 我迭代了状态,然后我按照它们的顺序执行它们:
for (String statement : statements) {
System.out.println(statement);
stmt.executeQuery(statement);
}
在控制台中打印语句:
insert into results (cod_prod,cod_prod1,scor_prod1,cod_prod2,scor_prod2,cod_prod3,scor_prod3,cod_prod4,scor_prod4) values(9100100123256,8692857013184,9.93973798303341,8710908117671,9.653580483609403,6423038000042,9.181317277303606,90005848,9.181317277303606)
insert into results (cod_prod) values(90494741)
...
我希望它们按此顺序执行,但是当我查询数据库时,我得到了不同顺序的行:
为什么会这样发生? stmt.executeQuery(语句)打开一个进程,它的执行速度更低,具体取决于语句(插入的值的数量等)?它应该同步吗?
你能举个例子说明我如何按照foreach给他们的顺序执行语句?
答案 0 :(得分:2)
您正在迭代并打印Java ArrayList
或其他一些结构,并且该Java数据结构已维护插入 - 顺序。
您的表是一个RDBMS表,它没有任何这样的自动排序。在SELECT
中,您可以使用SQL。列上的ORDER BY
子句,用于按您想要的任何顺序对结果集行进行排序。