1

想象一个简单的 java.sql.Connection 连接池。连接释放回池后,我们不知道是否有任何事务打开,是否创建了任何临时表等。

而不是手动检查 getAutoCommit() 是否为假,然后查看我们是否需要回滚、调用 rollback() 等,我希望会有一个 reset() 函数执行类似于 SQL Server sp_resetconnection 存储过程的操作,但不依赖于 DBMS。但是,查看 Connection 的 API 似乎没有。

有这样的功能吗?

4

2 回答 2

1

那没有。事实上,即使是 SQL Server 连接池数据源类也不会调用 sp_resetconnection 调用,因为它依赖于应用程序服务器(或管理连接池的其他应用程序)将连接返回到已知状态。请参阅http://msdn.microsoft.com/en-us/library/ms378484(v=sql.90).aspx

各种驱动程序、服务器等可能有自己的特性,但我相对肯定的是,没有非专有或跨数据库的 Java 方法可以像 sp_resetconnection proc 那样做类似的事情。

于 2011-05-23T01:50:07.843 回答
0

我不相信这样的功能存在。大约一年前我想解决这个问题,最后不得不调用 DBMS 特定的函数。

于 2011-05-23T01:50:05.027 回答