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

标签 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(statement) 打开一个进程,它的执行速度是慢还是快,具体取决于语句(插入的值的数量等)?并且应该同步?

您能给我一个示例,说明如何按照 foreach 给出的顺序执行语句吗?

最佳答案

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

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

关于java - 如何使用 JDBC 和 Statement.executeQuery() 按顺序执行语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40220696/

相关文章:

java - 是否可以从 proxyConnection 检索底层用户?

java - 谁能帮我使用 StartingClass 中的 loadMap() 方法加载 map (文本文件)?

java - WEB-INF/lib 目录与 Java 9 模块

java - synchronized 是否保证线程将看到另一个线程修改的非 volatile 变量的最新值?

oracle - 在 JDBC PL/SQL block 中多次使用命名参数时出错

Java - 将 SQL 语句存储在外部文件中

hadoop - Hortonworks hiveserver2 jdbc错误

java - 使用 JDBC 检查 Db 的凭据

java - 在 spring 框架中创建名称在类路径资源 [application-context.xml] 中定义的 bean 时出错

java - 如何在 Java 中命名 HashMap?