2016-12-04 18 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

相關問題