Java org.springframework.jdbc.datasource.driverManager数据源相对于oracle.jdbc.pool.OracleDataSource的优势
我目前在我的项目中使用此配置:Java org.springframework.jdbc.datasource.driverManager数据源相对于oracle.jdbc.pool.OracleDataSource的优势,java,spring,oracle,jdbc,Java,Spring,Oracle,Jdbc,我目前在我的项目中使用此配置: <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource" destroy-method="close"> <property name="URL" ... <property name="user" ... <property name="password" ... <property
<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" />
第一种配置特定于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,它具有DriverManager数据源的所有功能
还有连接池功能。我不认为这有什么好处——文档本身清楚地表明,这在现实生活中的应用非常有限。限制在于它不使用任何类型的池,因此每次请求连接时,都会请求一个新的物理连接。如果你有一个单线程程序,它能够建立一次连接,并在整个生命周期中使用它,那么它在现实生活中唯一可能的用途就是(据我所知)。你所得到的只是你没有建立连接池的内存占用。是否也可以在“DriverCassName”中定义该类,以便保留通用容器但保留特定行为?编辑了我的原始帖子。你可以看看。
<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>