我正在使用JDBC和内联SQL语句的传统JSP的Web应用程序。JDBC语句中的顺序
我们遇到了数据库中数据不正确的问题,我想知道是否有可能以与它们在代码中指定的顺序不同的顺序执行两条语句。即,如果我们有两个更新语句像以下示例一样运行。
String sql1 = "update table set x = y";
String sql2 = "update table set z = a";
Statement statement = conn.createStatement();
db_wrapper.runSQL(sql1,statement);
db_wrapper.runSQL(sql2,statement);
是否有可能在重负载下第二个sql语句将在数据库的第一个sql语句之前运行。
安装我们主要是在oracle数据库上运行的问题。
而且该代码当前不使用事务。
使用交易 - 听起来像是一个简单的修复。毕竟,你已经有了'Connection'实例。即使你没有告诉我们的数据库(不是“甲骨文”等),驱动程序,JVM,哪个平台,您正在使用的servlet容器......哦,哪个版本,以及所使用的硬件和运行的进程的列表......不太可能有人猜测。 – Paul
什么是db_wrapper?它是否同步提交请求?还是异步? –
只是一个包含statement.executeUpdate等异常处理的包装。 – eaglestorm