如何使用JDBC和Statement.executeQuery()按顺序执行语句?

时间:2016-10-24 14:13:24

标签: java jdbc

我使用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)
...

我希望它们按此顺序执行,但是当我查询数据库时,我得到了不同顺序的行:

img

为什么会这样发生? stmt.executeQuery(语句)打开一个进程,它的执行速度更低,具体取决于语句(插入的值的数量等)?它应该同步吗?

你能举个例子说明我如何按照foreach给他们的顺序执行语句?

1 个答案:

答案 0 :(得分:2)

您正在迭代并打印Java ArrayList或其他一些结构,并且该Java数据结构已维护插入 - 顺序

您的表是一个RDBMS表,它没有任何这样的自动排序。在SELECT中,您可以使用SQL。列上的ORDER BY子句,用于按您想要的任何顺序对结果集行进行排序。