【发布时间】:2011-03-01 05:34:29
【问题描述】:
我正在设计一个简单的 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(){...}
}
我所担心的只是建立与数据库的连接并断开连接的方法。我可以通过两种方式做到这一点 -
方法一:
我可以在 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*/}
}
方法二: 我可以在需要时建立连接,并在完成活动后关闭它。缺点:每次都需要建立连接并关闭它。例如,
...
...
private void addMember() {
//establish connection
//update database
//close connection
}
...
...
这两种方式中哪一种似乎更好?还是有第三种更好的方法?
谢谢!
【问题讨论】: