数据库连接通常不应为单例。
两个原因:
- 许多数据库驱动程序不是线程安全的。使用单例意味着如果您有多个线程,它们将共享同一连接。单例模式不会给您带来安全感。它仅允许许多线程轻松共享“全局”实例。
- 就我个人而言,我认为Singleton通常会导致不良设计:请参阅此帖子(由其他人发表)http://tech.puredanger.com/2007/07/03/pattern-hate-singleton/
而不是考虑数据库池。池是共享的(如果需要,可以是单例)。当您需要执行数据库工作时,请执行以下操作:
getConnectioFromPool();doWork()closeConnection() // releases back to pool
样本池库:
- http://commons.apache.org/dbcp/
- http://jolbox.com/



