`

spring加载hibernate映射文件的几种方式

阅读更多

在Spring的applicationContext.xml中配置映射文件,通常是在<sessionFactory>这个 Bean实例中进行的,若配置的映射文件较少时,可以用sessionFactory的所属类LocalSessionFactoryBean的 “mappingResources”属性,方式包括(mappingResources,mappingLocations、 mappingDirectoryLocations与mappingJarLocations )定义方法如下:

 第一种:

<property name="mappingResources">

    <list>

    <value>com/w3cs/vlar/hibernate/Person.hbm.xml</value>

    <value>com/w3cs/vlar/hibernate/Car.hbm.xml</value>

    <value>com/w3cs/vlar/hibernate/Engine.hbm.xml</value>

    <value>com/w3cs/vlar/hibernate/Toy.hbm.xml</value>

    </list>

</property>

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

 第二种:

在这种情况下,可以使用LocalSessionFactoryBean的“mappingDirectoryLocations”属性来定义映射文件,只要指出映射文件所在文件夹就可以了,Spring会替你找出该文件夹内所有的映射文件,定义方法如下:

<property name="mappingDirectoryLocations">

    <list>

       <value>WEB-INF/mappings</value>

    </list>

</property>

第三种:

当然,它的属性值也可以通过classpath来指出,这时所指定的是工程的类路径

<property name="mappingDirectoryLocations">

     <list>

         <value>classpath:/my/package/*.hbm.xml</value>

     </list>

</property>

第四种:

<!-- 增加了对大对象字段处理配置Begin -->
 <bean id ="oracleLobHandler" 
      class ="org.springframework.jdbc.support.lob.OracleLobHandler" 
      lazy-init ="true" >  
      <property  name ="nativeJdbcExtractor"  ref ="nativeJdbcExtractor" />
  </bean>    
 
  <bean id ="nativeJdbcExtractor"  class ="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
      lazy-init ="true"/>
     <!-- 增加了对大对象字段处理配置End -->

<!--  定义Hibernatte框架中需要的SesscionFactory对象//-->
 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <!--增加了对大对象字段处理配置Begin -->
  <property name ="lobHandler" ref ="oracleLobHandler"/>
  <!--增加了对大对象字段处理配置End -->
  <property name="mappingDirectoryLocations">
       <list>
         <value>classpath:/my/package/login/dao/pojo/</value>
         <value>classpath:/my/package/jpf/dao/pojo/</value>
         ......

       </list>
  </property>

分享到:
评论

相关推荐

    spring和hibernate整合

    3. **事务管理**:Spring提供了一种声明式事务管理方式,通过`@Transactional`注解可以方便地控制事务边界。在配置文件中,需要开启事务管理器并指定对应的SessionFactory。 4. **DAO层集成**:Spring的DaoSupport...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    Hibernate3.3引入了HQL(Hibernate Query Language),这是一种面向对象的查询语言,与SQL类似但更接近Java对象的思维方式。 整合这三个框架的第一步通常涉及到以下几个步骤: 1. 配置环境:确保项目中引入了...

    集成spring的hibernate懒加载

    在Java的Web开发中,Spring框架与Hibernate的整合是常见的数据访问层实现方式。Spring提供了强大的依赖注入(DI)和AOP(面向切面编程)功能,而Hibernate则是一个优秀的对象关系映射(ORM)框架,它使得Java开发者...

    Hibernate 和 Spring的结合配置文件

    在`Hibernate`与`Spring`的整合中,通常会有一个`hibernate.cfg.xml`配置文件,用来定义数据库连接信息、实体类的映射等。同时,`Spring`的配置文件(如`applicationContext.xml`)中会包含`Hibernate`的相关bean...

    Strut+Spring+Hibernate框架的工作原理

    Hibernate的延迟加载机制可以分为两种: 1. 实体对象的延迟加载 2. 集合的延迟加载 Hibernate的映射关系 Hibernate可以实现类之间的关系,例如一对多、多对多的关系。这种关系主要体现在表与表之间的关系上,我们...

    Spring之Spring2.5集成Hibernate3.6

    1. **事务管理**:Spring提供了一种统一的事务管理方式,可以在不同数据源上进行声明式或编程式事务控制,使得事务管理更加简单且健壮。 2. **对象持久化**:通过Spring的Hibernate模板或者JPA抽象层,开发者可以...

    Structs+Spring+Hibernate文件上传

    Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。结合SSH,Ajax可以实现在文件上传过程中页面的动态更新,用户可以实时看到上传进度或结果,提高了用户体验...

    Hibernate延迟加载以及利用Spring

    在Hibernate的配置文件或映射文件中,可以设置关联对象的加载策略为延迟加载。比如在给定的部分内容中,`&lt;many-to-one name="dept" class="com.sxy.dao.Dept" fetch="select" lazy="proxy"&gt;` 表示了部门(Dept)与...

    spring3hibernate4集中式声明

    1. **使用Hibernate SessionFactory**:在Spring配置文件中,定义一个SessionFactory Bean,通过Hibernate的Configuration类加载hibernate.cfg.xml,然后初始化SessionFactory。这样,SessionFactory的创建和管理都...

    双鱼林struts+spring+hibernate图书管理系统.zip

    开题报告和大学答辩通常会涉及以下几个方面:系统背景介绍、需求分析、系统设计(包括架构设计、数据库设计)、关键技术实现(如Struts的拦截器、Spring的AOP、Hibernate的懒加载等)、系统功能模块详细说明、系统...

    JUnit(针对spring和hibernate)

    在结合Spring和Hibernate进行测试时,有几种常见的测试策略: 1. **单元测试**:专注于单一的函数或方法,通常不涉及数据库交互。你可以使用`@DataJpaTest`或`@WebMvcTest`来专注于特定的Spring组件,如JPA或MVC。 ...

    一个ajax+spring+hibernate整合project

    在数据库创建语句中,可能包含了创建实体对应的表结构,例如用户表、商品表等,这些表结构应与Hibernate的映射文件(.hbm.xml或使用注解的方式)保持一致。 学习这个项目,初学者可以从以下几个方面入手: 1. **...

    Struts、Spring、Hibernate&Ajax;学习笔记总结

    为了更好地理解和应用 Struts,我们还需要了解几种常见的数据对象及其用途: - **POJO (Plain Old Java Object)**:简单的 Java 对象,具有 getter 和 setter 方法。它是其他数据对象的基础。 - **PO (Persistent ...

    Java.Web开发JSP.Servlet.Struts.Spring.Hibernate.Ajax.rar

    本压缩包"Java.Web开发JSP Servlet Struts Spring Hibernate Ajax.rar"显然包含了几个关键的Java Web开发技术,包括JSP(JavaServer Pages)、Servlet、Struts、Spring、Hibernate以及Ajax。以下是对这些技术的详细...

    Flex、Spring、Hibernate 集成

    ### Flex、Spring、Hibernate 集成 #### 引言 随着互联网技术的不断发展,**RIA(Rich Internet Application,富互联网应用)**逐渐成为一种重要的技术趋势,它结合了传统桌面应用的优势与Web应用的便利性,为用户...

    spring+hibernate

    Spring是一个全面的、模块化的应用框架,而Hibernate则是一个强大的对象关系映射(ORM)工具,两者结合可以构建出高效、灵活的企业级应用程序。 Spring框架主要包含以下几个核心模块: 1. **Spring Core Container...

    springmvc spring hibernate ajax json

    在这个"springmvc spring hibernate ajax json"的简单完整DEMO中,我们可以预期以下几个方面的集成和使用: 1. **Spring MVC** 作为前端控制器,负责接收HTTP请求,调度到相应的Controller处理。 2. **Spring** 通过...

    Struts+Spring+Hibernate补充内容

    在Struts配置文件中引入Spring的上下文加载插件,可以实现Struts与Spring的无缝集成。 ```xml &lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"&gt; *.xml"/&gt; ``` 这段配置指定了Spring的...

Global site tag (gtag.js) - Google Analytics