有一朋友的项目在数据库连接上应用了单例模式,项目环境是oracle、weblogic、jsp,他们将数据库的连接对象做成了单例模式。这样做的人估计不在少数,请大家参与讨论,这样设计的好坏。 
此设计是大大的错误,会导致严重的性能问题。理由是:如果数据库连接做成单例模式也就是说系统只会存在一个数据库连接实例,大家公用。但这一实例可以并发使用吗?我认为不能,因此存在排队。另外一个数据库连接实例对应于weblogic连接池的一个数据库连接,如果做成了单例,那么weblogic连接池的连接的使用数不会超过一个,那么weblogic连接池没有任何意义。由此在这里又生出以下问题: 1、单例模式中共用的单一实例可以并发使用吗?不用单例模式是否执行速度会更快些,因为在使用实例时不用排队争用,而是各有一个实例可用(当然多个实例内存占用会多,另外创建实例也会花一些时间)。 2、一个数据库连接对象实例是否只对应于weblogic连接池的一个数据连接? 
< <java与模式> > 一书中有关于单例模式在数据库连接的应用的内容(216页.例子二),作者不赞成将单例模式用于数据库链接,但原因说得很弱,只是说“connection对象可以同时有几个实例共存,不必是单一实例。”,但如果我的观点是正确的,或者大体正确的,那么“不必是”就应改“不应是,不能是”,因为它会使系统运行效率大打折扣,特别是那么高访问量的网站将更明显(我的朋友项目是某通讯运营商的查话费系统)。