数据库连接管理

时间:2011-03-01 05:34:30

标签: java jdbc

我正在设计一个简单的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
}
...
...

这两种方式中的哪一种似乎更好?或者还有第三种更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我建议你去connection-pooling