开发者社区> 问答> 正文

数据库连接单例和连接池效率区别在哪?

数据库连接问题。new一个数据库的连接对象是耗时耗资源的,因此不可能对每个请求都做一遍连接创建和关闭的操作,网上给的方法一般采用连接池。我的疑问就是,我如果采用单例模式,
这样的话,如果是多个线程请求数据库操作,那么直接调用静态getInstance方法(对此方法加锁),取得同一个数据库连接对象进行数据库操作,是不是可行的。我的理解是Connection在第一次实例化时,已经确定了它要连接时那个数据库,以后的操作也不会改变这些属性,因此不存在线程安全问题,而针对数据库本身的操作,数据应该也会提供一套同步机制,避免“脏数据”。这样的话,单例模式和池化相比,采用哪种方式更好?

展开
收起
蛮大人123 2016-02-20 17:44:46 4369 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    这是两个不同的概念
    数据库连接单例是指在你项目运行期间,始终只有一个数据库连接。即这个链接在程序中是复用的
    而连接池维持了到数据库服务器的多个物理连接,每当有新的数据库连接请求时,优先使用已存在的空闲的物理连接
    显然前者是针对一个项目内部的
    而后者是针对多个项目的(当然也适用项目内的多个独立连接)

    2019-07-17 18:45:34
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载