1、spring给继承HibernateDaoSupport的dao注入sessionFactory,HibernateDaoSupport的setSesionFactory()方法中执行new HibernateTemplate(sessionFactory);创建一个hibernateTemplate。然后调用getHibernateTemplate().(load、find、updata……)等去执行和数据库的交互。
2、sessionFactory配置:
<bean id="mySessionFactory" class="com.hcsoft.base.database.dao.hibernate.UncLocalSessionFactoryBean">
<property name="dataSource"><ref local="myDataSource"/></property>
<property name="lobHandler"><ref local="oracleLobHandle"/></property>
<!-- Hibernate 2.0 or later -->
<!--
<property name="mappingDirectoryLocations">
<list>
<value>classpath:/test/</value>
</list>
</property>
-->
<property name="mappingResources">
<list>
<value>com/hcsoft/fsdais/hbm/Sorganization.hbm.xml</value>
<value>com/hcsoft/fsdais/hbm/Suser.hbm.xml</value>
<value>com/hcsoft/fsdais/hbm/SdiskCode.hbm.xml</value>
<value>com/hcsoft/fsdais/hbm/Sdept.hbm.xml</value>
<value>com/hcsoft/fsdais/hbm/Scachet.hbm.xml</value>
<value>com/hcsoft/fsdais/hbm/OaSSection.hbm.xml</value>
<value>com/hcsoft/fsdais/hbm/OaSGroup.hbm.xml</value>
……
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">net.sf.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
<!--
<prop key="hibernate.proxool.existing_pool">true</prop>
<prop key="hibernate.proxool.pool_alias">spring</prop>
-->
</props>
</property>
</bean>
myDataSource配置:
<bean id="myDataSource" class="com.hcsoft.base.database.ConnectionProviderDataSource">
<property name="connectionProvider"><ref local="connectionProvider"/></property>
<property name="param"><value>spring</value></property>
</bean>
connectionProvider配置:
<property name="configFile"><bean id="connectionProvider" class="com.hcsoft.base.database.proxoolsupport.ProxoolConnectionProvider" init-method="init">
<value>/proxool.xml</value>
</property>
</bean>