2011-03-01 110 views
0

我正在設計一個簡單的Java應用程序,它使用JDBC處理在MySQL數據庫中插入/刪除/更新記錄的過程。我有一個類Member,它涉及會員的詳細信息。數據庫連接管理

class Member { 
    ... // Private Members 
    ... // Accessors 
} 

..和我有一個處理程序,處理成員記錄

class MemberHandler { 
    public MemberHandler(){...} 
    public void addMember(Member mem){...} 
    public void removeMember(Member mem){...} 
    public Member[] getMembers(){...} 
} 

所有我擔心的是我建立與數據庫的連接和斷開的方法。我能做到這一點有兩種方式 -

方法1: 我可以在MemberHandler Connection conn成員,建立連接,同時實例化類和關閉連接時,對象不再是必要的。在這裏,我將爲每個對象建立一個連接,並且無論何時需要執行與數據庫相關的任何活動,都無需建立連接。在這種情況下,缺點似乎是 - 當網絡連接中斷時,conn可能會失效。

class MemberHandler { 
    private java.sql.Connection conn; 
    ... // Other members 
    private void createConnection(){/*creates the connection*/} 
    private void closeConnection(){conn.close(); /*called when conn is no more needed*/} 
} 

方法2: 在需要的時候,我可以建立連接並關閉它,當我對做過的事情。缺點:每次我都需要建立連接並關閉它。例如,

... 
... 
private void addMember() { 
    //establish connection 
    //update database 
    //close connection 
} 
... 
... 

這兩種方法哪一種似乎更好?還是有更好的方法?

謝謝!

回答