JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » JDBC/SQL討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:connection會自動關閉 [Re:gucci]
systempanic





發文: 216
積分: 4
於 2004-04-29 11:01 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
gucci wrote:
您好
我不太懂你說

呼叫conn.close()有些危險,大部分的人都是在catch和finally block
都會寫conn.close(),stmt.close(),rs.close()等等....

請問一下
是不是該寫在catch裡而不是finally內
但是這樣的話
到底什麼時候才會把resource release回connection pool呢?


我把你的程式改一下,你參考看看......
另外你這個MainSerBean應不是要當java bean吧? 因為你這class名稱有Bean,
但內容跟java bean沒有關係,而且還implement Serializable interface,讓人
感到困惑......

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package bean;
public class MainSerBean implements java.io.Serializable{
 
  protected Context ctx, envctx;
  protected DataSource ds;
  protected Connection conn;
  protected Statement stmt;
  
  public MainSerBean(){
    try{
      ctx = new InitialContext();        
      envctx = (Context) ctx.lookup("java:comp/env");
      ds=(DataSource) envctx.lookup("jdbc/o8i");
          
      conn=ds.getConnection();       
      stmt=conn.createStatement();
    }
    catch(Exception e){
      System.out.println(e.getMessage());
    }
  }
 
  public ResultSet getResultSet(){
    try{
      setResource();      
      String sql = "select code_seq,code_desc from bldcode where code_type='OFC' and code_seq<>'**' order by code_seq";
      return stmt.executeQuery(sql);
    }
    catch(Exception e){
      System.out.println(e.getMessage());
    }
    finally {
      releaseResource();
    }
    return null;
  }
 
  protected void setResource() {
    try{
      if (conn == null) conn = ds.getConnection();
      if (conn != null )  stmt = conn.createStatement();  
    }
    catch(Exception e) {
      System.err.println("Cannot prepare db resource");
      e.printStackTrace();
    }
  }
 
  protected void releaseResource(){
    
       if ((stmt != null) && (conn != null)) {
         try {
          stmt.close();
          conn.close(); 
        }
        catch(SQLException se){
          System.err.println("Cannot release db resource");
          System.out.println(se.getMessage());
       }
     }
  }
 
 
}

package bean;
public class SearchBean extends MainSerBean implements java.io.Serializable{
public SearchBean(){
try{
}
catch(Exception e){
System.out.println(e.getMessage());
}
}

public ResultSet getResultSet(int minRow, int maxRow){
try{
setResource();
.......
return stmt.executeQuery(tmp.toString());
}
catch(Exception e){
System.out.println(e.getMessage());
}
finally {
releaseResource();
}
return null;
}

public String getCount(){
try{
setResource();
..........
return rs.getString(1);
}
catch(Exception e){
System.out.println(e.getMessage());
}
finally{
releaseResource();
}
return "0";
}
........
}


systempanic edited on 2004-04-29 13:17
reply to postreply to post
NaN
話題樹型展開
人氣 標題 作者 字數 發文時間
3475 connection會自動關閉 gucci 544 2004-04-14 13:21
3066 Re:connection會自動關閉 luchiong 140 2004-04-14 14:05
3247 Re:connection會自動關閉 gucci 35 2004-04-14 16:29
3082 Re:connection會自動關閉 systempanic 176 2004-04-14 20:46
2952 Re:connection會自動關閉 luchiong 295 2004-04-14 17:03
2911 Re:connection會自動關閉 gucci 1738 2004-04-15 09:22
2974 Re:connection會自動關閉 systempanic 807 2004-04-15 10:24
2897 Re:connection會自動關閉 gucci 811 2004-04-21 20:57
2733 Re:connection會自動關閉 tsung_cheng 903 2004-04-29 09:55
2708 Re:connection會自動關閉 systempanic 983 2004-04-29 10:37
2741 Re:connection會自動關閉 systempanic 2898 2004-04-29 11:01
2692 Re:connection會自動關閉 gucci 449 2004-05-04 10:15
2733 Re:connection會自動關閉 systempanic 974 2004-05-04 11:47
» JWorld@TW »  JDBC/SQL討論區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8