当前位置: 技术问答>java相关
rs.close抛出异常的问题!
来源: 互联网 发布时间:2015-09-05
本文导语: 部分源程序如下: //连接数据库 int i=0; int j=0; String url="jdbc:odbc:973_se590"; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection connection=DriverManager.getConnection(url,"sql_973","datashare"); ...
部分源程序如下:
//连接数据库
int i=0;
int j=0;
String url="jdbc:odbc:973_se590";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connection=DriverManager.getConnection(url,"sql_973","datashare");
//查询小麦光谱
String sql="select * from se590_brdf";
Statement statement=connection.createStatement(rs.TYPE_SCROLL_SENSITIVE,rs.CONCUR_READ_ONLY);
rs=statement.executeQuery(sql);
while (rs.next())
{ System.out.println("j="+j);
String sql2="select * from 土面反射率_BRDF";
rs_soil=statement.executeQuery(sql2);
while (rs_soil.next())
{
System.out.println("ResultSet try!"+i);
i=i+1;
}//end while rs_soil
rs_soil.close();
j=j+1;
}//end while rs
rs.close();
}catch(Exception ex)
{System.out.println("A problem occurred:"+ex);
}
数据库连接没有问题。
程序运行后抛出异常:A problem occurred:java.sql.SQLException: ResultSet is closed
无论我把rs_soil.close方在外层循环的里面还是外面都是一样的异常信息,把两个记录集关闭的语句屏蔽掉也出现同样的异常。
请问这是怎么回事?在线等待!
//连接数据库
int i=0;
int j=0;
String url="jdbc:odbc:973_se590";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connection=DriverManager.getConnection(url,"sql_973","datashare");
//查询小麦光谱
String sql="select * from se590_brdf";
Statement statement=connection.createStatement(rs.TYPE_SCROLL_SENSITIVE,rs.CONCUR_READ_ONLY);
rs=statement.executeQuery(sql);
while (rs.next())
{ System.out.println("j="+j);
String sql2="select * from 土面反射率_BRDF";
rs_soil=statement.executeQuery(sql2);
while (rs_soil.next())
{
System.out.println("ResultSet try!"+i);
i=i+1;
}//end while rs_soil
rs_soil.close();
j=j+1;
}//end while rs
rs.close();
}catch(Exception ex)
{System.out.println("A problem occurred:"+ex);
}
数据库连接没有问题。
程序运行后抛出异常:A problem occurred:java.sql.SQLException: ResultSet is closed
无论我把rs_soil.close方在外层循环的里面还是外面都是一样的异常信息,把两个记录集关闭的语句屏蔽掉也出现同样的异常。
请问这是怎么回事?在线等待!
|
一个statement同一时间只能打开一个记录集,如果打开了第二个记录集,那么前面打开的那个记录集会自动关闭的
所以如果你想打开第二个记录集,又不想关闭第一个记录集,那么就用两个statement吧
所以如果你想打开第二个记录集,又不想关闭第一个记录集,那么就用两个statement吧