• Spring集成Hibernate映射文件的4种方式


    概要:

          在Spring的applicationContext.xml中集成Hibernate映射文件,通常是在<sessionFactory>这个Bean实例中进行的,若配置的映射文件较少时,可以用sessionFactory的所属类LocalSessionFactoryBean的“mappingResources”属性,但使用“mappingResources”属性并不是唯一的选择。其他等价选择包括(mappingLocations、mappingDirectoryLocations与mappingJarLocations )

    配置一个sessionFactory的范例如下:

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                <property name="dataSource">
                    <ref bean="hotelSysDS" />
                </property>
                <property name="hibernateProperties">
                    <props>
                        <prop key="hibernate.dialect">
                            org.hibernate.dialect.MySQLDialect
                        </prop>
                        <prop key="hibernate.show_sql">true</prop>
                        <prop key="hibernate.format_sql">true</prop>                
                    </props>
                </property>
                <property name="mappingResources">
                   <list>
                      <value>/edu/fjnu/hotelsys/domain/User.hbm.xml</value>
                      <value>/edu/fjnu/hotelsys/domain/Hotel.hbm.xml</value>
                      <value>/edu/fjnu/hotelsys/domain/Room.hbm.xml</value>
                   </list>
                </property>
         </bean> 
        

    目录:

    1. mappingResources 
    2. mappingLocations
    3. mappingDirectoryLocations
    4. mappingJarLocations

    mappingResources

    mappingResources:指定classpath下具体映射文件名 

    方式一:

    <property name="mappingResources" value=“userTest.hbm.xml”/>

    方式二:

    <property name="mappingResources"> 
        <value>petclinic.hbm.xml </value> 
    </property> 

    方式三:利用list同时指定多个 映射文件

    <property name="mappingResources">
        <list>
            <value>/edu/fjnu/hotelsys/domain/User.hbm.xml</value>
            <value>/edu/fjnu/hotelsys/domain/Hotel.hbm.xml</value>
            <value>/edu/fjnu/hotelsys/domain/Room.hbm.xml</value>
          </list>
    </property>

    当配置文件变得越来越多,阅读和修改起来也越来越麻烦,而且基于XML的配置也可能带来输入的错误,导致你可能因为一个字符的错误而浪费半天时间去寻找错误。

    注:以下将不再一一把配置方式都列出来

    mappingLocations

    mappingLocations:可以指定任何文件路径

    <property name="mappingLocations"> 
        <value>/WEB-INF/petclinic.hbm.xml </value> 
    </property> 

    或者指定前缀:classpath、file等

    <property name="mappingLocations"> 
        <value>classpath:/com/company/domain/petclinic.hbm.xml </value> 
    </property> 

    也可以用通配符指定,'*'指定一个文件(路径)名,'**'指定多个文件(路径)名,例如: 

    <property name="mappingLocations"> 
        <value>classpath:/com/company/domainmaps/*.hbm.xml </value> 
    </property> 

    上面的配置是在com/company/domain包下所有hbm.xml文件都被加载为映射文件 

    mappingDirectoryLocations

    mappingDirectoryLocations:指定映射的文件路径 

    <property name="mappingDirectoryLocations">
      <list>
      <value>WEB-INF/HibernateMappings</value>
      </list>
    </property>

    也可以通过classpath来指出

    <property name="mappingDirectoryLocations">
      <list>
      <value>classpath:/XXX/package/</value>
      </list>
    </property>

    mappingJarLocations

    mappingJarLocations:指定加载的映射文件在jar文件中 

  • 相关阅读:
    第十一周总结
    第十周总结
    实验报告(七)及第九周总结
    第六次实验及第八周总结
    第五实验报告及第七周总结
    第六周&实验四
    期末课程总结
    第十四周课程总结&实验报告(简单记事本的实现)
    第十三周课程总结
    第十二周总结
  • 原文地址:https://www.cnblogs.com/bmbi/p/5299953.html
Copyright © 2020-2023  润新知