用weblogic数据库连接池递归调用实现树形目录出错
public class menu_tree implements Serializable{
DBConn myDBConn = new DBConn();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
public ResultSet executeQuery(String sql){
try {
conn = myDBConn.getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
}
catch (SQLException e) {
System.err.println(e.toString());
}
return rs;
}
}
public void buildTree(javax.servlet.jsp.JspWriter out,int parentid,int level)
throws Exception{
menu_tree conn=new menu_tree();
level++;
ResultSet rs = conn.executeQuery(
"select * from MENU_TREE where PARENTID=" + parentid + "order by ID");
while (rs.next()) {
out.println("<div>");
for (int i = 0; i < level - 1; i++)
out.print("<img src=\"images/white.gif\"> ");
id1=rs.getInt("ID");
boolean resu=has_child(id1);
out.println(resu);
if (resu) {
out.print("<img alt=\"展开\" style=\"cursor:hand;\" onclick=\"myClick('"+rs.getInt("ID") + "');\" ID=\"img" + rs.getInt("ID") + "\" src=\"images/plus.gif\"> <img ID=\"im" + rs.getInt("ID")+"\" src=\"images/closedfold.gif\"> ");
out.print("<span onclick=\"myClick1('" + rs.getInt("id") +
"');\" style=\"cursor:default;\" ID=\"span" +
rs.getInt("ID") + "\">" + rs.getString("MENU") + "</span>");
out.println("<div style=\"display:none;\" ID=\"div" + rs.getInt("ID") +
"\">");
// out.println(rs.getInt("ID") ) ;
buildTree(out,id1,level); //递归调用
out.println("</div>");
}
else
out.print("<img src=\"images/minus.gif\"> <img src=\"images/openfold.gif\"> <span onclick=\"myClick1('" +
rs.getInt("id") +
"');\" style=\"cursor:default;\" ID=\"span" +
rs.getInt("ID") + "\">" + rs.getString("MENU") + "</span>");
out.println("</div>");
}
rs.close();
rs=null;
}
private boolean has_child(int parentid) throws Exception {
ResultSet rs=conn.executeQuery("select * from MENU_TREE where PARENTID="+parentid+"order by ID");
return rs.next();
}
其中DBConn是用weblogic数据库连接池连接oracle数据库,但是该段代码在递归调用处出错,但是如果不用连接池,DBConn直接连接oracle数据库,则没有出错,能正常显示树形目录,是不是用连接池需要清理内存,该如何解决?