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