最好的JDBC数据源bean类 [英] Best JDBC data source bean class

查看:149
本文介绍了最好的JDBC数据源bean类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看到有些人使用 org.apache.commons.dbcp.BasicDataSource ,而其他配置有 com.mchange.v2.c3p0.ComboPooledDataSource 。

I see that some people use org.apache.commons.dbcp.BasicDataSource while other configurations have com.mchange.v2.c3p0.ComboPooledDataSource.

Spring有自己的: org.springframework.jdbc.datasource.DriverManagerDataSource

Spring has its own: org.springframework.jdbc.datasource.DriverManagerDataSource

可能还有更多。但哪一个最好?我有一个JPA / Hibernate三层应用程序需要连接池,但它看起来像都支持这个....

There are probably even more. But which one is best? I have a JPA/Hibernate three tier application that needs connection pooling, but it looks like that all support this....

推荐答案


Spring有自己的:org.springframework.jdbc.datasource.DriverManagerDataSource

Spring has its own: org.springframework.jdbc.datasource.DriverManagerDataSource

org.springframework .jdbc.datasource.DriverManagerDataSource 实现 DataSource 接口,但一个连接池,类,并且可以在开发期间使用,而不是真正的池(但它会在每次调用时创建一个新的连接)。我建议阅读其 javadoc

The class org.springframework.jdbc.datasource.DriverManagerDataSource implements the DataSource interface but is NOT a connection pool, it's just a convenient class that and can be used during development instead of a real pool (but it creates a new connection on every call). I'd suggest to read its javadoc.


我有一个JPA / Hibernate三层应用程序需要连接池,但它看起来像所有支持这个....


I have a JPA/Hibernate three tier application that needs connection pooling, but it looks like that all support this....

如果您使用应用程序服务器,则优先使用应用程序服务器的连接池。

If you are using an application server, favor the connection pool of your application server.

如果你不是,那么DBCP,C3P0是最常见的解决方案。 会使用C3P0(这实际上是与Hibernate现在而不是DBCP绑定),我在高负载下面临一些死锁问题,而不是C3P0,所以我倾向于喜欢C3P0。

If you are not, then DBCP, C3P0 are the most common solutions. I would use C3P0 (which is actually bundled with Hibernate now instead of DBCP), I faced some deadlock issues with DBPC under high load, not with C3P0 so I tend to prefer C3P0.

可能值得注意的是,DBCP最近在非常长时间的不活动(而C3P0处于非活动状态)后已复活,因此可能会变得更好。

It may be worth noting that DBCP has been resurrected very recently after a very long period of inactivity (while C3P0 is inactive) and might thus get better.

其他玩家包括 Proxool BoneCP (最近的新竞争对手)。后来看起来很有趣,但我没有任何实际经验。

Other players include Proxool and BoneCP (a recent new competitor). The later looks interesting but I don't have any practical experience with it.

在任何情况下,您都应该在进行生产前执行健壮性测试。

In any case, you should typically run robustness tests before going to production.

  • Connection pooling options with JDBC: DBCP vs C3P0

这篇关于最好的JDBC数据源bean类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆