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;
}
%>
展开
 我来答
冷冷晚风轻轻吹dP80d
推荐于2017-11-25 · TA获得超过202个赞
知道答主
回答量:187
采纳率:50%
帮助的人:133万
展开全部
while(rs.next())
{
%>
………………
<%
rs.close();
st.close();
con.close();
}

楼主你看一下这个语句...

你在第一次使用 rs.next() 之后就把数据库的连接关闭了..

当然下面就不能使用了...应该这样写才对...

while(rs.next())
{
%>
………………
<%
}
rs.close();
st.close();
con.close();

把关闭数据库的语句写到while循环的外面就行了....

若还是有问题百度HI我..帮你解决啦!

祝楼主早日成功!!!
求采纳为满意回答。
追问
能不能看过我的代码之后再给我复制粘贴??能不能靠谱点
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式