SQL Server JDBC驱动程序是否支持异步操作?

时间:2010-08-23 17:33:26

标签: java sql-server jdbc asynchronous

从一些谷歌搜索看来,.NET支持SQL Server 2005+的异步操作。最新的JDBC驱动程序是否支持此功能?我无法在任何地方找到它,所以我认为它可能没有。但我觉得问这个问题并没有什么坏处。

谢谢! 阿维

3 个答案:

答案 0 :(得分:3)

不,但这并不意味着您无法执行异步数据库操作。您只需将异步字符放在适当的层中,如消息驱动的bean或Process线程。我不明白为什么JDBC应该支持像asynch处理这样的中间层概念。

答案 1 :(得分:2)

JDBC几乎都是单线程的。从连接向下,预计只有一个线程将使用它的生命周期(确定连接可以合并但应该对应用程序不可见,并且一次只有一个线程应该使用连接)。

有一个例外Statement.cancel()允许另一个线程中断/取消正在进行的查询,但我相信这是多线程的唯一实例。

就像duffymo说的那样,如果你想要异步行为,你会在JDBC之上构建一些东西(我猜这就是.NET在幕后做的事情)。

答案 2 :(得分:2)

commons-dbutils库为JDBC调用提供了一个很好的包装器,甚至提供了一种异步的调用方式:AsyncQueryRunner。值得一看:http://commons.apache.org/dbutils/apidocs/org/apache/commons/dbutils/AsyncQueryRunner.html