关于JAVA数据库问题!高手指教!急急急,在线等待 不行的话,建个数据源,用JDBC-ODBC桥试试. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哎,说实话,一开始看就觉得你的Connection就有问题你为什么要一直都把连接传来传去呢?你应该在你的数据库连接类里面定义一个私有Connetion,构造函数里面连接默认数据库,以后执行语句或者其它一些操作都用那个连接! Class.forName(DRIVER);Class.forName(DRIVER).newInstance(); PRB:在手工事务模式下无法启动克隆的连接文章 ID : 313181 最后更新日期 : 2004年11月25日 版本 : 2.0 本页内容 症状 原因 解决方案 状态 更多信息 参考 症状使用 Microsoft SQL Server 2000 JDBC 驱动程序时,您可能会遇到以下异常:java.sql.SQLException:[Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode. 原因在手工事务模式 (AutoCommit=false) 下,如果使用直接 (SelectMethod=direct) 模式,当您尝试对使用 JDBC 驱动程序的 SQL Server 数据库执行多个语句时,将会出现此问题。直接模式是该驱动程序的默认模式。 解决方案当您使用手工事务模式时,必须将驱动程序的 SelectMethod 属性设置为 Cursor,或者确保您按照本文“更多信息”一节指定的方式在每个连接上只使用一个活动语句。 状态这种现象是设计导致的。更多信息重现此问题的步骤使用以下代码重现此错误:注意:请参见代码中的注释,以获取解决此问题所需的代码更改信息。 import java.sql.*;import java.io.*;public class Repro{ public static void main(String args[]) { try { Connection con; Statement s1 = null; ResultSet r1 = null; Statement s2 = null; ResultSet r2 = null; Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); con = DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;SelectMethod=Direct;User=User;Password=Password"); //fix 1 //"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;SelectMethod=Cursor;User=User;Password=Password"); con.setAutoCommit(false); try { s1 = con.createStatement(); r1 = s1.executeQuery("SELECT * FROM authors"); //fix 2 //r1.close(); //s1.close(); s2 = con.createStatement(); r2 = s2.executeQuery("SELECT * FROM publishers"); } catch (SQLException ex) { System.out.println(ex); } } catch (Exception e) { e.printStackTrace(); } }} 我认为 100% DBURL 出错!!!!!!! 你把错误堆栈COPY出来,不要弄/*为什么会报告Can't start a cloned connection while in manual * transaction mode.错误 * 在调用函数executeQuery()是也是一样的 **/这样的东西,看不懂 新手上路,多多指教: 工厂模式是怎么回事,不太明白 String b=new String("ABC")定义了几个String object?(在线等) 如何用java读取excel2003的单元格的数据?着急啊~~~~~~~ 13711613(黑龙江程序员联盟)欢迎加入,这里高手如云 用JAVA如何结获 本机QQ,的数据??? 一个关于Applet的奇怪问题 学习Java从那里开始? 关于一个用JAVA进行文件分割的问题 学JAVA有什么经典教材吗?? 讨论:关于变量传递的有关问题…… 提个小问题,大家帮忙看看 求教打包问题
你为什么要一直都把连接传来传去呢?
你应该在你的数据库连接类里面定义一个私有Connetion,构造函数里面连接默认数据库,以后执行语句或者其它一些操作都用那个连接!
Class.forName(DRIVER).newInstance();
文章 ID : 313181
最后更新日期 : 2004年11月25日
版本 : 2.0
本页内容
症状
原因
解决方案
状态
更多信息
参考 症状
使用 Microsoft SQL Server 2000 JDBC 驱动程序时,您可能会遇到以下异常:java.sql.SQLException:[Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.
原因
在手工事务模式 (AutoCommit=false) 下,如果使用直接 (SelectMethod=direct) 模式,当您尝试对使用 JDBC 驱动程序的 SQL Server 数据库执行多个语句时,将会出现此问题。直接模式是该驱动程序的默认模式。
解决方案
当您使用手工事务模式时,必须将驱动程序的 SelectMethod 属性设置为 Cursor,或者确保您按照本文“更多信息”一节指定的方式在每个连接上只使用一个活动语句。
状态
这种现象是设计导致的。
更多信息
重现此问题的步骤
使用以下代码重现此错误:注意:请参见代码中的注释,以获取解决此问题所需的代码更改信息。 import java.sql.*;
import java.io.*;
public class Repro{ public static void main(String args[])
{
try {
Connection con;
Statement s1 = null;
ResultSet r1 = null;
Statement s2 = null;
ResultSet r2 = null;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;SelectMethod=Direct;User=User;Password=Password");
//fix 1
//"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;SelectMethod=Cursor;User=User;Password=Password");
con.setAutoCommit(false); try {
s1 = con.createStatement();
r1 = s1.executeQuery("SELECT * FROM authors"); //fix 2
//r1.close();
//s1.close(); s2 = con.createStatement();
r2 = s2.executeQuery("SELECT * FROM publishers");
}
catch (SQLException ex)
{
System.out.println(ex);
} }
catch (Exception e)
{
e.printStackTrace();
}
}
}
/*为什么会报告Can't start a cloned connection while in manual
* transaction mode.错误
* 在调用函数executeQuery()是也是一样的
**/
这样的东西,看不懂