gpt4 book ai didi

java - 数据库连接应该是单例吗?

转载 作者:太空狗 更新时间:2023-10-29 22:32:34 25 4
gpt4 key购买 nike

在 Java 中创建单例的最佳方法是什么?数据库连接是否应该是单例(作为单例它自动是线程安全的)?因为理论上数据库不能同时被多个用户访问。

最佳答案

数据库连接通常不应是单例。

两个原因:

  1. 许多数据库驱动程序不是线程安全的。使用单例意味着如果你有很多线程,它们将共享同一个连接。单例模式不会为您提供线程安全性。它仅允许多个线程轻松共享一个“全局”实例。
  2. 就我个人而言,我认为单例通常会导致糟糕的设计:请参阅这篇文章(由其他人撰写)http://tech.puredanger.com/2007/07/03/pattern-hate-singleton/

考虑数据库池而不是这样做。池是共享的(如果你愿意,也可以是单例)。当你需要做数据库工作时,你的代码会这样做:

getConnectioFromPool();

doWork()
closeConnection() // releases back to pool

示例池库:

关于java - 数据库连接应该是单例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6507687/

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