﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-几木-随笔分类-JAVA</title><link>http://www.blogjava.net/tnq/category/29286.html</link><description>低调的张狂</description><language>zh-cn</language><lastBuildDate>Sun, 03 Feb 2008 06:14:04 GMT</lastBuildDate><pubDate>Sun, 03 Feb 2008 06:14:04 GMT</pubDate><ttl>60</ttl><item><title>SQLServer2000中使用JDBC的问题</title><link>http://www.blogjava.net/tnq/archive/2008/02/02/179093.html</link><dc:creator>JIMU</dc:creator><author>JIMU</author><pubDate>Sat, 02 Feb 2008 14:14:00 GMT</pubDate><guid>http://www.blogjava.net/tnq/archive/2008/02/02/179093.html</guid><wfw:comment>http://www.blogjava.net/tnq/comments/179093.html</wfw:comment><comments>http://www.blogjava.net/tnq/archive/2008/02/02/179093.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tnq/comments/commentRss/179093.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tnq/services/trackbacks/179093.html</trackback:ping><description><![CDATA[<p>在使用Microsoft提供的JDBC可能很多人都遇到以下两个问题，今天一个朋友在使用的时候就遇到了，后来帮朋友把问题解决了，在解决问题的过程中我也查了些资料，在网上发现有一些朋友对这些问题不是很清楚，所以今天把这两个问题写下来，大家一起交流进步。</p>
<p>问题一：<br />
出现异常：Can't start a cloned connection while in manual transaction mode.<br />
原因：今天朋友遇上这个问题是因为使用了多个Statement，并且使用了手动事务状态。<br />
解决方法：在数据库连接字符串中加入SelectMethod=Cursor即可，SelectMethod的默认模式为direct，代码：<br />
<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">jdbc:microsoft:sqlserver:</span><span style="color: #008000">//</span><span style="color: #008000">localhost:1433;DatabaseName=test;SelectMethod=Cursor</span></div>
<br />
问题二：<br />
出现异常：com.microsoft.jdbc.sqlserver.SQLServerConnection.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;<br />
原因：使用了自动绑定主键，代码：<br />
&nbsp;
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">String&nbsp;sql&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">INSERT&nbsp;INTO&nbsp;test&nbsp;values(?)</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />PreparedStatement&nbsp;pstmt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;conn.prepareStatement(sql,&nbsp;Statement.RETURN_GENERATED_KEYS);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />pstmt.setString(</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">test</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />pstmt.executeUpdate();</span></div>
<br />
解决方法：这里我是使用了第三方JDBC包（jtds）解决的，下载地址：http://jtds.Sourceforge.net，下面贴出JDBC驱动及连接地址： <br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">String&nbsp;driver</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">net.sourceforge.jtds.jdbc.Driver</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />String&nbsp;url</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:jtds:sqlserver://localhost:1433;DatabaseName=test</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;</span></div>
<br />
关于第二个问题，如果有朋友知道如何在SQLServer2000的JDBC中解决，请给我留言，一起交流进步。<br />
在这里推荐使用第三方JDBC（jtds）包，用这个包的话至少以上两个问题都不用担心。 
 <img src ="http://www.blogjava.net/tnq/aggbug/179093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tnq/" target="_blank">JIMU</a> 2008-02-02 22:14 <a href="http://www.blogjava.net/tnq/archive/2008/02/02/179093.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>