2016-12-04 82 views
0

我现在用spring和mybatis配置项目工作。如何在使用MyBatis时在PooledDataSource和dbcp之间做出选择?

网上有很多例子告诉我应该使用org.springframework.jdbc.datasource.DriverManagerDataSource作为数据源,但是mybatis使用PooledDataSource作为数据源,这让我感到困惑。所以,我读了DirverManagerDataSource的源代码,它只是一个模拟池连接。所以,我知道如何做出选择。

但是,我很快就遇到了一个新问题。如何在PooledDataSourceDBCP之间做出选择?我读了PooledDataSource的源代码,它也是一个简单的实现,但是这两个lib的代码太复杂了,我没有足够的时间来阅读这些代码。

你能告诉我哪个更强大吗?为什么?谢谢!

回答

0

对于Spring和MyBatis,它在功能上无关紧要。只要有一个DataSource可用于配置,那么一切都会工作。对于Spring,在Spring配置中创建DataSource通常最简单,并将其传递给MyBatis SqlSessionFactoryBean

MyBatis的PooledDataSource应该是从性能的角度确定,但它确实synchronize所以可能具有竞争问题非常高并发。它可以在Spring中作为普通bean进行配置。

DPCP具有更多功能(特别是JMX监控),版本2应该比DPCP v1具有更好的性能。

如果您正在容器中运行,则可能需要通过JNDI使用容器池(请参阅JndiObjectFactoryBean)。如果您使用Tomcat,它将拥有它自己的pool implementation

+0

如果在一个容器中运行,通常通过JNDI使用容器的池? – Oolong

+0

当我在容器中运行时,容器池和第三方池之间是否有区别? – Oolong

+0

例子,当我在Tomcat中运行时Tomcat池和DPCP V2的区别? – Oolong

相关问题