java - 数据库连接管理

标签 java jdbc

我正在设计一个简单的 Java 应用程序,该应用程序使用 JDBC 处理 MySQL 数据库中的记录插入/删除/更新。我有一个 Member 类,用于处理成员的详细信息。

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

..我有一个处理程序来处理成员(member)记录

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

我所担心的是建立与数据库的连接和断开连接的方法。我可以通过两种方式做到这一点 -

方法一: 我可以在 MemberHandler Connection conn 中有一个成员,在实例化类时建立连接,并在不再需要该对象时关闭连接。在这里,每个对象都有一个连接,并且每当我需要执行任何与数据库相关的 Activity 时都不需要建立连接。在这种情况下,缺点似乎是 - 当网络连接丢失时,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: 我可以在需要时建立连接,并在完成 Activity 后关闭它。缺点:每次都需要建立连接并关闭它。例如,

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

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

谢谢!

最佳答案

我建议您选择connection-pooling

关于java - 数据库连接管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5150882/

相关文章:

java - 如何使用 Java 8 计算当前时间和下周六之间的秒数

java - java中插入成功后自动更新

mysql - 显示对数据库有任何权限的用户。 MySQL

java - 字符串数组中的空指针异常

java - 如何使用 JDBC API 捕获 Hive 退出状态或错误代码

java - 使用 hibernate 连接到数据库 - 连接 url

java - 如何从 Java 中的 ResultSetMetaData 获取不同的数据类型?

java - 如何抑制新短信通知?

java - atoi函数的返回值

java - 将字段访问更改为 getter/setter 方法访问