主要有两种方式:applicationContext.xml中配置;Hibernate.cfg.xml中配置,applicationContext.xml中调用
1)spring配置hibernate路径
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml">//引入hibernate配置文件路径 </property> </bean>
2)spring配置hibernate属性
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 使用hibernate配置文件路径进行配置--> <!-- <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> --> <!-- 注入数据源 --> <property name="dataSource"> <ref bean="dataSource"/> </property> <!-- 注入hibernate属性 --> <property name="hibernateProperties"> <props> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> </props> </property> <!-- Hibernate映射文件 --> <property name="mappingResources"> <list> <value>com/softfz/po/Tuser.hbm.xml</value> </list> </property> </bean>
LocalSessionFactoryBean有好几个属性用来查找hibernate映射文件:
mappingResources、mappingLocations、mappingDirectoryLocations与mappingJarLocations
他们的区别:
1)mappingResources:指定classpath下具体映射文件名
<property name="mappingResources" value=“userTest.hbm.xml”/> <property name="mappingResources" value=“userTest.hbm.xml”/>
或者利用list同时指定多个 映射文件
<property name="mappingResources"> <list> <value>cn/com/env/DAO/tusers/Tusers.hbm.xml</value> <value>cn/com/env/DAO/projectNeed/Tprojectneed.hbm.xml</value> <value>cn/com/env/DAO/projectNeedA/Tprojectneeda.hbm.xml</value> </list> </property>
2)mappingLocations:可以指定任何文件路径,并且可以指定前缀:classpath、file等
<property name="mappingLocations" value="/WEB-INF/usetTest.hbm.xml"/> <property name="mappingLocations" value="classpath:com/myproject/domain/userTest.hbm.xml"/> <property name="mappingLocations" value="/WEB-INF/usetTest.hbm.xml"/> <property name="mappingLocations" value="classpath:com/myproject/domain/userTest.hbm.xml"/>
也可以用通配符指定,'*'指定一个文件(路径)名,'**'指定多个文件(路径)名,例如:
<property name="mappingLocations" value="classpath:com/myproject/domain/**/*.hbm.xml"/> <property name="mappingLocations" value="classpath:com/myproject/domain/**/*.hbm.xml"/>
或
<property name="mappingLocations"> <list> <value>classpath:/hbm/aaa/*.hbm.xml</value> <value>classpath:/hbm/bbb/*.hbm.xml</value> </list> </property>
上面的配置是在com/myporject/domain包下任何路径下的hbm.xml文件都被加载为映射文件
3)mappingDirectoryLocations:指定映射的文件路径
<property name="mappingDirectoryLocations"> <list> <value>/WEB-INF/classes/com/hjy/model/survey</value> </list> </property> <property name="mappingDirectoryLocations"> <list> <value>/WEB-INF/classes/com/hjy/model/survey</value> </list> </property>
4)mappingJarLocations:指定加载的映射文件在jar文件