【问题标题】:Synchrounous execution of stored procedure存储过程的同步执行
【发布时间】:2017-03-03 18:53:40
【问题描述】:

我有以下代码:

connection = makeConnection();
CallableStatement callableStatement = connection.prepareCall("{call dbo.delete_orders(?) }");
callableStatement.setString(1, userName);
callableStatement.execute();
callableStatement.close();

请帮助我了解如何保证在最后一行执行后存储过程执行将完成或异步执行。

【问题讨论】:

  • 请显示该存储过程的代码。确切的行为可能取决于存储过程的作用。例如,如果该存储过程首先从表中进行选择(返回该表)然后执行删除,那么除非实际读取行,否则可能不会发生删除操作(我不确定 SQL Server 或不是)。

标签: java asynchronous stored-procedures jdbc


【解决方案1】:

JDBC 不支持异步执行。

但另一方面,JDBC 也没有指定调用(它的一些方法,如execute())是阻塞的。这意味着您可以在数据库仍在后台执行查询时从数据库中获得(第一个)结果。

但这取决于JDBC 驱动程序的实现数据库本身。

【讨论】:

    【解决方案2】:

    JDBC 不支持异步执行。如果那是纯 JDBC,那么它应该是同步运行的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 2011-11-11
      • 2010-09-15
      • 1970-01-01
      • 2014-10-15
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多