我正在使用Spring 3.1.0.RELEASE,Hibernate 4.0.1.Final和MySQL 5.1。我应该使用什么池化数据源?我目前正在使用(应用程序上下文文件中的代码段)…
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/myproj</value> </property> <property name="username"> <value>myproj</value> </property> <property name="password"> <value>password</value> </property> </bean>
但这不是汇总的数据源,而是在每个调用上创建JDBC连接。我以前有这个Hibernate配置(hibernate.cfg.xml)…
<hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/myproj</property> <property name="hibernate.connection.username">myproj</property> <property name="hibernate.connection.password">password</property> <property name="hibernate.connection.pool_size">10</property> <property name="show_sql">true</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> ...
但是由于Spring 3.1.0中的一个错误,在配置会话工厂bean时,我无法使用hibernate.cfg.xml文件(我试图这样做- 来自Spring应用程序上下文文件的代码段…)
<bean class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" id="sessionFactory"> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property>
您可以使用Apache DBCP,这将取代以下内容:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="maxActive" value="10"/> <property name="minIdle" value="5"/> <!-- SELECT 1 is a simple query that returns 1 row in MySQL --> <property name="validationQuery" value="SELECT 1"/> </bean>
注意事项
存在更多选项来配置验证发生的时间。