日期:2014-05-20  浏览次数:20704 次

Core Java中关于JDBC部分的一点疑问
Core   Java卷II中,关于JDBC部分有这样一段话:

“不过,预先应该提醒你的是,至少有一个常用数据库(MS   SQL   Server)拥有的JDBC驱动程序每次只允许运行一个活动语句。使用DataBaseMetaData.getMaxStatements()来了解JDBC驱动支持同时打开的语句数量。”


但我实际测试结果:DataBaseMetaData.getMaxStatements()=0;
对于同一个Connection,可以交叉混合使用多个Statement。

不知道怎么回事?

------解决方案--------------------
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery( "select * from books ");
Statement stmt1 = conn.createStatement();
ResultSet rs1 = stmt.executeQuery( "select * from score ");

while (rs.next()) {
System.out.println(rs.getObject(1));
if (rs1.next())
System.out.println(rs1.getObject(1));
}
conn.close();


这样就会有错误
------解决方案--------------------
有啥疑问啊,2个ResultSet不是由2个Statement出来的么.