gpt4 book ai didi

java - org.springframework.jdbc.datasource.DriverManagerDataSource 相对于 oracle.jdbc.pool.OracleDataSource 的优势

转载 作者:行者123 更新时间:2023-11-30 06:59:19 25 4
gpt4 key购买 nike

我目前在我的项目中使用此配置:

<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource"
destroy-method="close">
<property name="URL" ...
<property name="user" ...
<property name="password" ...
<property name="connectionCachingEnabled" value="true" />

而且它运行良好,速度非常快。我碰巧在一个旧项目(spring 2.5)上看到了这个配置:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url"...
<property name="username" ...
<property name="password" ...
</bean>

从文档来看,最后一个选项似乎没有使用连接池。我认为没有理由在我的配置上使用这个配置,但它仍然存在所以我很好奇:优势/限制在哪里?

最佳答案

第一种配置是特定于 Oracle 的,而第二种配置是通用的。您可以显式定义驱动程序类。除了 OracleDataSource 的连接池支持之外,这是我在它们中看到的唯一主要区别。

您可以将它用于如下所述的一般行为:

<bean id="baseDataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
abstract="true">
<property name="username" value="user"/>
<property name="password" value="pwd" />
</bean>

<bean id="mySqlDataSource" parent="baseDataSource">
<property name="driverClassName" value="${mySQL.driver}" />
<property name="url" value="${mySQL.url}"/>
</bean>

<bean id="oracleDataSource" parent="baseDataSource">
<property name="driverClassName" value="${oracle.driver}" />
<property name="url" value="${oracle.url}"/>
</bean>

您可以外部化的属性值。

您可以探索 Apache Jakarta Commons DBCP,它具有 DriverManagerDataSource 的所有功能以及连接池功能。

关于java - org.springframework.jdbc.datasource.DriverManagerDataSource 相对于 oracle.jdbc.pool.OracleDataSource 的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31670479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com