用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資料庫,則沒有出錯,能正常顯示樹形目錄,是不是用連線池需要清理記憶體,該如何解決?
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資料庫,則沒有出錯,能正常顯示樹形目錄,是不是用連線池需要清理記憶體,該如何解決?
相關文章
- 資料庫連線池實現資料庫
- JDBC資料庫連線池實現JDBC資料庫
- 利用weblogic的POOL(連線池)連線資料庫 (轉)Web資料庫
- 資料庫連線池的實現及原理資料庫
- 自己實現一個資料庫連線池資料庫
- django中的資料庫連線池實現Django資料庫
- golang兩種資料庫連線池實現Golang資料庫
- 連線資料庫出錯???資料庫
- Flask框架使用藍圖劃分目錄、g物件、使用資料庫連線池連結資料庫Flask框架物件資料庫
- Java 的JDBC 資料庫連線池實現方法JavaJDBC資料庫
- 用VisualC++6.0遞迴查詢目錄樹 (轉)C++遞迴
- 資料庫連線池資料庫
- Vue遞迴元件實現樹形結構選單Vue遞迴元件
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 資料庫連線池設計和實現(Java版本)資料庫Java
- 一個帶CheckBox的樹形目錄javascript的遞迴演算法JavaScript遞迴演算法
- 不用遞迴實現樹形結構的一種方法遞迴
- 資料庫連線池原理資料庫
- Proxool資料庫連線池資料庫
- JAVA資料庫連線池Java資料庫
- Flask資料庫連線池Flask資料庫
- Spring框架中mysql資料庫連線池bean設定出錯Spring框架MySql資料庫Bean
- 基於C++11的資料庫連線池實現C++資料庫
- 一種實現資料庫連線池的方法(JAVA) (轉)資料庫Java
- 關於WebLogic 訪問Oracle 資料庫(建立連線池)問題WebOracle資料庫
- 遞迴函式-樹形列表遞迴函式
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- 【資料結構】遞迴實現連結串列逆序資料結構遞迴
- python資料庫連線池Python資料庫
- 手寫資料庫連線池資料庫
- 瞭解資料庫連線池資料庫
- 資料庫連線池的理解資料庫
- 資料庫連線池的使用資料庫
- 資料庫連線池淺析資料庫
- WASCE的資料庫連線池資料庫
- JNDI配置資料庫連線池資料庫
- PROXOOL資料庫連線池使用資料庫