gpt4 book ai didi

java - 如何为java中的许多方法建立一个数据库连接?

转载 作者:搜寻专家 更新时间:2023-10-30 23:17:38 25 4
gpt4 key购买 nike

我有一个 DAO 类,它有许多操作数据库的方法。我为所有方法使用一个连接对象,如下所示(Database.connect() 返回一个连接对象):

class ExampleDAOImpl implements ExampleDAO{
private Connection con = null;

public void method1 () {
con = Database.connect();
....
con.close();
}

public void method2 () {
con = Database.connect();
....
con.close();
}

public void method1 () {
con = Database.connect();
....
con.close();
}
}

为每个方法实例化一个新连接并关闭它是否是一个好习惯?我现在有错误说“连接关闭后不允许操作”虽然我在每个方法的开头初始化连接并在最后关闭它。或者最好使用相同的连接对象并有一个单独的方法在我调用它时关闭它?

最佳答案

ExampleDAOImpl 类的对象不是线程安全的。因此,如果多个线程同时使用相同的 ExampleDAOImpl 对象和调用方法,则可能会发生一个关闭连接然后另一个线程尝试使用它的情况。

可能的解决方案:

  • 确保 ExampleDAOImpl 对象永远不会在多线程上下文中使用。这仍然容易出错。
  • 更好的建议:不要使用单个 Connection 对象,而是使用 ConnectionPool 在每个方法的开头获取连接并在完成后释放它。

关于java - 如何为java中的许多方法建立一个数据库连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11082046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com