如果在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
显然看起来简化许多了.