您的位置:首页 > 数据库

使用IBatis操作SQLServer数据库查询怪异异常

2008-06-05 13:09 120 查看

异常信息 :  java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.

 

分析 : 这个错误产生的原因一般是当你在一个SQL SERVER的JDBC连接上执行多个STATEMENTS的操作,或者是手动事务状态(AutoCommit=false) 并且使用 direct (SelectMethod=direct) 模式. Direct 模式是默认的模式.

 

解决办法 : 当你使用手动事务模式时,必须把SelectMethod 属性的值设置为 Cursor, 或者是确保在你的连接上只有一个STATEMENT操作。

 

解析:
如果你用MS的驱动时,如果你没有设置selectMethod=cursor(默认为direct),这时候,你同一个connection创建了两个statement,实际上第二个statement会隐式创建一个cloned connection,所以你在Enterprise manager里会看到多出的session

 

设置SelectMethod参数举例:

 

在连接SQLServer数据的URL中进行设置 :  jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db;SelectMethod=Cursor

 

 

至于将SelectMethod设置程Direct和Cursor的区别,和设置程Cursor后可对那些参数设置进行进一步优化就靠大家自己取查资料了,这里就不在细叙了

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐