【问题标题】:Java Callablestatement doesn't wait until .execute() endsJava Callablestatement 不会等到 .execute() 结束
【发布时间】: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 中获取值

【问题讨论】:

  • 一旦你的插入过程完成,然后调用下一个过程来获取值。它可能在所有数据的不完整插入之前工作

标签: java sql-server jdbc


【解决方案1】:

我认为只有一个问题,事务隔离级别甚至在提交过程事务之前就允许脏读。我建议您在过程事务之后使用 commit 将读取表格部分放在一个新的事务块中。并且请检查事务隔离级别。

【讨论】:

    猜你喜欢
    • 2021-02-23
    • 2019-04-26
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多