几木

低调的张狂

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  1 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

2008年2月2日 #

在使用Microsoft提供的JDBC可能很多人都遇到以下两个问题,今天一个朋友在使用的时候就遇到了,后来帮朋友把问题解决了,在解决问题的过程中我也查了些资料,在网上发现有一些朋友对这些问题不是很清楚,所以今天把这两个问题写下来,大家一起交流进步。

问题一:
出现异常:Can't start a cloned connection while in manual transaction mode.
原因:今天朋友遇上这个问题是因为使用了多个Statement,并且使用了手动事务状态。
解决方法:在数据库连接字符串中加入SelectMethod=Cursor即可,SelectMethod的默认模式为direct,代码:

jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test;SelectMethod=Cursor

问题二:
出现异常:com.microsoft.jdbc.sqlserver.SQLServerConnection.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;
原因:使用了自动绑定主键,代码:
 
String sql = "INSERT INTO test values(?)";
PreparedStatement pstmt 
= conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
pstmt.setString(
1"test");
pstmt.executeUpdate();

解决方法:这里我是使用了第三方JDBC包(jtds)解决的,下载地址:http://jtds.Sourceforge.net,下面贴出JDBC驱动及连接地址:

String driver="net.sourceforge.jtds.jdbc.Driver";
String url
="jdbc:jtds:sqlserver://localhost:1433;DatabaseName=test"

关于第二个问题,如果有朋友知道如何在SQLServer2000的JDBC中解决,请给我留言,一起交流进步。
在这里推荐使用第三方JDBC(jtds)包,用这个包的话至少以上两个问题都不用担心。
posted @ 2008-02-02 22:14 JIMU 阅读(620) | 评论 (1)编辑 收藏