Operation not allowed after ResultSet closed异常 5
我写的一个递归,但是运行老是报rs已经关闭,求指点。<%!Stringstr="";privatevoidtree(Connectionconn,intid,intlev...
我写的一个递归,但是运行老是报rs已经关闭,求指点。
<%!
String str="";
private void tree(Connection conn,int id,int level){
String preStr="";
Statement stmt=null;
ResultSet rs=null;
String sql="select * from article where pid="+ id;
for(int i=0;i<level;i++){
preStr+="---";
}
stmt=DB.getStmt(conn);
System.out.println();
rs=DB.executeQuery(stmt, sql);
try{
while(rs.next()){
str="<tr><td>"+ rs.getInt("id")+"</td></tr>"+
"<tr><td>"+preStr+ rs.getString("title")+"</td></tr>";
if(rs.getInt("isleaf")!=0){
tree(conn,rs.getInt("id"),level+1);
}
}
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(rs!=null){
rs.close();
}
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
%>
<%
Connection conn=DB.getConn();
Statement stmt=DB.getStmt(conn);
ResultSet rs=null;
//输出主题帖
String sql="select * from article where pid=0";
rs=stmt.executeQuery(sql);
try{
while(rs.next()){
System.out.println("oh my fuck");
str="<tr><td>"+ rs.getInt("id")+"</td></tr>"+
"<tr><td>"+ rs.getString("title")+"</td></tr>";
if(rs.getInt("isleaf")!=0){
System.out.println("oh my fuckking");
tree(conn,rs.getInt("id"),1);
System.out.println("wocao");
}
}
}catch(SQLException e){
e.printStackTrace();
}
finally{
System.out.println("fuck");
DB.close(rs);
rs=null;
System.out.print("shit");
DB.close(stmt);
stmt=null;
DB.close(conn);
conn=null;
}
%> 展开
<%!
String str="";
private void tree(Connection conn,int id,int level){
String preStr="";
Statement stmt=null;
ResultSet rs=null;
String sql="select * from article where pid="+ id;
for(int i=0;i<level;i++){
preStr+="---";
}
stmt=DB.getStmt(conn);
System.out.println();
rs=DB.executeQuery(stmt, sql);
try{
while(rs.next()){
str="<tr><td>"+ rs.getInt("id")+"</td></tr>"+
"<tr><td>"+preStr+ rs.getString("title")+"</td></tr>";
if(rs.getInt("isleaf")!=0){
tree(conn,rs.getInt("id"),level+1);
}
}
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(rs!=null){
rs.close();
}
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
%>
<%
Connection conn=DB.getConn();
Statement stmt=DB.getStmt(conn);
ResultSet rs=null;
//输出主题帖
String sql="select * from article where pid=0";
rs=stmt.executeQuery(sql);
try{
while(rs.next()){
System.out.println("oh my fuck");
str="<tr><td>"+ rs.getInt("id")+"</td></tr>"+
"<tr><td>"+ rs.getString("title")+"</td></tr>";
if(rs.getInt("isleaf")!=0){
System.out.println("oh my fuckking");
tree(conn,rs.getInt("id"),1);
System.out.println("wocao");
}
}
}catch(SQLException e){
e.printStackTrace();
}
finally{
System.out.println("fuck");
DB.close(rs);
rs=null;
System.out.print("shit");
DB.close(stmt);
stmt=null;
DB.close(conn);
conn=null;
}
%> 展开
展开全部
while(rs.next())
{
%>
………………
<%
rs.close();
st.close();
con.close();
}
楼主你看一下这个语句...
你在第一次使用 rs.next() 之后就把数据库的连接关闭了..
当然下面就不能使用了...应该这样写才对...
while(rs.next())
{
%>
………………
<%
}
rs.close();
st.close();
con.close();
把关闭数据库的语句写到while循环的外面就行了....
若还是有问题百度HI我..帮你解决啦!
祝楼主早日成功!!!
求采纳为满意回答。
{
%>
………………
<%
rs.close();
st.close();
con.close();
}
楼主你看一下这个语句...
你在第一次使用 rs.next() 之后就把数据库的连接关闭了..
当然下面就不能使用了...应该这样写才对...
while(rs.next())
{
%>
………………
<%
}
rs.close();
st.close();
con.close();
把关闭数据库的语句写到while循环的外面就行了....
若还是有问题百度HI我..帮你解决啦!
祝楼主早日成功!!!
求采纳为满意回答。
追问
能不能看过我的代码之后再给我复制粘贴??能不能靠谱点
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询