如果在web.xml中有如下配置:
<servlet>
<servlet-name>ServletConfigurator </servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>/WEB-INF/classes/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
那么如果在hibernate.cfg.xml中还有如下配置的话:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="hibernate.proxool.pool_alias">mssqlProxool</property>
<property name="hibernate.proxool.xml">proxool.xml</property>
<property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
<property name="hibernate.proxool.existing_pool">false</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.cache.use_query_cache">true</property>
</session-factory>
</hibernate-configuration>
注意:如果同时配置了web.xml和hibernate.cfg.xml会产生错误:
org.logicalcobwebs.proxool.ProxoolException: Parsing failed.
因为同名的proxool
连接池已经启动,而hibernate开始运行时会自己启动关联的proxool连接池.
所以此时应改变hibernate.cfg.xml配置为:
<property name="hibernate.proxool.existing_pool">true</property>
================================================
以上的方式是由hibernate配置管理数据库连接池(proxool)的方式!!!!!
=======================================================
以下是由spring管理数据库连接池的配置方式:
<bean id="hrDS"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.logicalcobwebs.proxool.ProxoolDriver" />
<property name="url" value="proxool.phrConn" />
</bean>
<bean id="phrSessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="hrDS" />
<property name="jtaTransactionManager" ref="atomikosTransactionManager" />
<property name="mappingDirectoryLocations">
<list>
<value>${dbconn.docstore.mappingDirectory}</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
${dbconn.docstore.dialect}
</prop>
<prop key="hibernate.show_sql">
${dbconn.docstore.showsql}
</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.cache.use_second_level_cache">
false
</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.cache.use_query_cache">false</prop>
<!--
for jta compatilibility (jta)
org.hibernate.context.JTASessionContext
-->
<prop key="current_session_context_class">jta</prop>
<prop key="hibernate.transaction.factory_class">
org.hibernate.transaction.JTATransactionFactory
</prop>
</props>
</property>
</bean>
==================================
下面spring中这个属性的配置替代了hibernate.cfg.xml配置中引入的<mapping resource="com/unicom/dmp/metadata/model/MetaObjectField.hbm.xml" />......
<property name="mappingDirectoryLocations">
<list>
<value>${dbconn.docstore.mappingDirectory}</value>
</list>
</property>
${dbconn.docstore.mappingDirectory} 来源于:properties配置文件中的设置:dbconn.docstore.mappingDirectory=classpath\:com/xzc/phr/dao/vo
显然看起来简化许多了.