Java Callablestatement 不会等到 .execute() 结束
Posted
技术标签:
【中文标题】Java Callablestatement 不会等到 .execute() 结束【英文标题】:Java Callablestatement doesn't wait until .execute() ends 【发布时间】:2014-10-20 07:09:21 【问题描述】:我正在尝试从 Table_X 中获取价值。但是那些由程序插入的表值。我正在调用像 ps.execute() 这样的过程,我想等到它结束并从 Table_X 获得所有结果,一切看起来都正常。但它只返回 Table_X 的一些结果,而不是全部。所以我认为它不会等到程序结束。所以它只返回一些插入的值。
我该如何解决?
编辑:代码;
CallableStatement pstmt = con.prepareCall(" ? = call "+job.getSP()+" ");
pstmt.registerOutParameter(1, Types.INTEGER);
pstmt.execute();
那我在调用一个方法
Map<String,String> errors = MTRCMtdJob.GetDataControlErrors();
这些方法从 Table_X 中获取值
【问题讨论】:
一旦你的插入过程完成,然后调用下一个过程来获取值。它可能在所有数据的不完整插入之前工作 【参考方案1】:我认为只有一个问题,事务隔离级别甚至在提交过程事务之前就允许脏读。我建议您在过程事务之后使用 commit 将读取表格部分放在一个新的事务块中。并且请检查事务隔离级别。
【讨论】:
以上是关于Java Callablestatement 不会等到 .execute() 结束的主要内容,如果未能解决你的问题,请参考以下文章
jdbc java数据库连接 5)CallableStatement 接口
如何从 Java JDBC 中的 callableStatement 获取滚动不敏感的结果集?