通过配置dataSource来配置sessionFactory
applicationContext.xml
<!-- 数据库配置 --> <!-- 定义数据源的信息 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"> <value>com.mysql.jdbc.Driver</value> </property> <property name="jdbcUrl"> <value>jdbc:mysql://localhost:3306/test</value> </property> <property name="user"> <value>root</value> </property> <property name="password"> <value>1</value> </property> <property name="maxPoolSize"> <value>80</value> </property> <property name="minPoolSize"> <value>1</value> </property> <property name="initialPoolSize"> <value>1</value> </property> <property name="maxIdleTime"> <value>20</value> </property> </bean> <!--定义Hibernate的SessionFactory --> <!-- SessionFactory使用的数据源为上面的数据源 --> <!-- 指定了Hibernate的映射文件和配置信息 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingDirectoryLocations"> <list> <value>classpath:beans</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="show_sql">true</prop> <prop key="hibernate.jdbc.batch_size">20</prop> </props> </property> </bean>
使用 mappingDirectoryLocations 属性可以指定某目录下的 hbm 文件
补充:使用 mappingResources 属性要一个一个写 hbm 文件,或者写成*.hbm.xml(“classpath*:”指向 WEB-INF/classes 目录)
<property name="mappingResources"> <list> <value>classpath*:beans/*.hbm.xml</value> </list> </property>