`
aaagu1234
  • 浏览: 149146 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring 2.5 JPA hibernate 使用方法整理(一)

    博客分类:
  • JPA
阅读更多
以下几篇文章简单的介绍一下jpa 和 spring5 hibernate2 整合配置的一个过程。纯粹个人经验只谈。如果有错误,请各位留言指出。

本系列重点是涉及 配置过程 ,对注释的用法不多介绍。

注释语法越来越多的被业界所使用,并且注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。注释和 Java 代码位于一个文件中,而 XML 配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果配置信息和 Java 代码放在一起,有助于增强程序的内聚性。而采用独立的 XML 配置文件,程序员在编写一个功能时,往往需要在程序文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率。因此在很多情况下,注释配置比 XML 配置更受欢迎,注释配置有进一步流行的趋势。Spring 5 的一大增强就是引入了很多注释类,现在您已经可以使用注释配置完成大部分 XML 配置的功能。

首先,我们已经通过 传统的spring +hibernate方式构架成功了一个应用的后台体系。
这个体系里面 有这样几个重要的配置文件。

    hibernate.cfg.xml 。
      里面通过 配置 mapping来指向每张数据表单生成配置文件.xxxx.hbm.xml文件
    applicaitonContex.xml。
      里面通过定义一个一个bean 来配置 各个需要用到的 DAO 和 Service。
    
     <?xml version="0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
          <beans >
              <bean id="sessionFactory"
                  class="org.springframework.orm.hibernateLocalSessionFactoryBean">
                  <property name="configLocation"
                      value="classpath:hibernate.cfg.xml">
                  </property>
              </bean>
             <bean id="transactionManager" class="org.springframework.orm.hibernateHibernateTransactionManager">
                 <property name="sessionFactory">
                     <ref local="sessionFactory"/>
                 </property>
             </bean>
             <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
                 <!–  事务拦截器bean需要依赖注入一个事务管理器 –>
                 <property name="transactionManager">
                     <ref local="transactionManager"/>
                 </property>
                 <property name="transactionAttributes">
                     <!–  下面定义事务传播属性–>
                     <props>
                         <prop key="insert*">PROPAGATION_REQUIRED</prop>
                         <prop key="update*">PROPAGATION_REQUIRED</prop>
                         <prop key="save*">PROPAGATION_REQUIRED</prop>
                         <prop key="add*">PROPAGATION_REQUIRED</prop>
                         <prop key="update*">PROPAGATION_REQUIRED</prop>
                         <prop key="remove*">PROPAGATION_REQUIRED</prop>
                         <prop key="delete*">PROPAGATION_REQUIRED</prop>
                         <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                         <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                         <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
                         <prop key="change*">PROPAGATION_REQUIRED</prop>
                         <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
                     </props>
                 </property>
             </bean>
         <!– 定义自动代理BeanNameAutoProxyCreator –>
         <bean id="beanNameAutoProxyCreator"
         class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
         <!–  指定对满足哪些bean name的bean自动生成业务代理 –>
         <property name="beanNames">
               <list>
                 <value>*Service</value>
               </list>
                </property>
         <!–  下面定义BeanNameAutoProxyCreator所需的事务拦截器–>
         <property name="interceptorNames">
         <list>
         <!– 此处可增加其他新的Interceptor –>
         <value>transactionInterceptor</value>
         </list>
         </property>
                 </bean>           
             <bean id="McCityInfoDAO"
                 class="com.firemax.manatee.hibernate.McCityInfoDAO">
                 <property name="sessionFactory">
                     <ref bean="sessionFactory" />
                 </property>
             </bean>
             <bean id="McMaterialInfoDAO"
                 class="com.firemax.manatee.hibernate.McMaterialInfoDAO">
                 <property name="sessionFactory">
                     <ref bean="sessionFactory" />
                 </property>
             </bean>
         </beans>

      hibernate.cfg.xml要配置这么多 xxxxx.hbm.xml文件。每次数据结构发生变化的时候。要重新去改写pojo和dao以及这些xxxxx.hbm.xml
      那么好。我们现在就用 注解的力量 去把这部分工作简化。

    * 首先我们需要

    hibernate2 以上版本的jar
    jdk 5 以上的环境
    spring2

    * 然后我们修改pojo的java类。加上注解。使起通过注解来取代原先要xxxx.hbm.xml里面配置的指向的数据库表单结构的信息。

  
 package com.alcor.web.hibernate;
    import java.util.HashSet;
    import java.util.Set;
    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.Id;
   import javax.persistence.JoinColumn;
   import javax.persistence.ManyToOne;
   import javax.persistence.OneToMany;
   import javax.persistence.Table;
   /**
    * AlcorTCitys entity. @author MyEclipse Persistence Tools
    */
   @Entity
   @Table(name = "alcor_t_citys", catalog = "alcorweb")
   public class AlcorTCitys implements java.io.Serializable {
       // Fields
       private String cityCode;
       private AlcorTProvinces alcorTProvinces;
       private String cityName;
       private Set<AlcotTDistrict> alcotTDistricts = new HashSet<AlcotTDistrict>(0);
       // Constructors
       /** default constructor */
       public AlcorTCitys() {
       }
       /** minimal constructor */
       public AlcorTCitys(String cityCode, AlcorTProvinces alcorTProvinces,
               String cityName) {
           this.cityCode = cityCode;
           this.alcorTProvinces = alcorTProvinces;
           this.cityName = cityName;
       }
       /** full constructor */
       public AlcorTCitys(String cityCode, AlcorTProvinces alcorTProvinces,
               String cityName, Set<AlcotTDistrict> alcotTDistricts) {
           this.cityCode = cityCode;
           this.alcorTProvinces = alcorTProvinces;
           this.cityName = cityName;
           this.alcotTDistricts = alcotTDistricts;
       }
       // Property accessors
       @Id
       @Column(name = "city_code", unique = true, nullable = false, length = 32)
       public String getCityCode() {
           return this.cityCode;
       }
       public void setCityCode(String cityCode) {
           this.cityCode = cityCode;
       }
       @ManyToOne(fetch = FetchType.EAGER)
       @JoinColumn(name = "province_code", nullable = false)
       public AlcorTProvinces getAlcorTProvinces() {
           return this.alcorTProvinces;
       }
       public void setAlcorTProvinces(AlcorTProvinces alcorTProvinces) {
           this.alcorTProvinces = alcorTProvinces;
       }
       @Column(name = "city_name", nullable = false, length = 64)
       public String getCityName() {
           return this.cityName;
       }
       public void setCityName(String cityName) {
           this.cityName = cityName;
       }
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "alcorTCitys")
       public Set<AlcotTDistrict> getAlcotTDistricts() {
           return this.alcotTDistricts;
       }
       public void setAlcotTDistricts(Set<AlcotTDistrict> alcotTDistricts) {
           this.alcotTDistricts = alcotTDistricts;
       }
   }


    * 修改hibernate.cfg.xml中的定义方式,把原来的maping source=“xxxxx.hbm.xml”修改成

<mapping class="com.alcor.web.hibernate.AlcorTCitys" />

这样我们就可以把原来的 xxxxx.hbm.xml全部删除了。
经过这个步骤。如果你原有的servcice层的功能能够正常使用。恭喜你。迈出了成功的第一步
分享到:
评论

相关推荐

    Spring2.5+Hibernate3.2开发手册

    - **Spring2.5中文开发参考手册.chm**:这份文档会详细介绍Spring 2.5 的核心概念、配置、API使用以及如何在实际项目中应用Spring框架。 - **Hibernate_3.2.0_api.chm**:这份文档是Hibernate 3.2.0 的API参考,包含...

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

    本教程将探讨如何将Struts2.1、Spring2.5和Hibernate3.3这三大流行框架进行整合,以构建一个强大的Java Web应用程序。首先,我们先关注Spring2.5与Hibernate3.3的整合,这是整个集成的第一步。 Spring2.5是Spring...

    jersey+spring2.5+hibernate3.3+jpa

    标题 "jersey+spring2.5+hibernate3.3+jpa" 指的是一种集成技术,将轻量级的RESTful服务框架Jersey、企业级应用框架Spring 2.5、持久层框架Hibernate 3.3以及Java Persistence API(JPA)结合在一起,以实现高效且...

    Struts2.0+spring2.5+hibernate3.2

    Struts2.0、Spring2.5和Hibernate3.2是经典的Java企业级开发框架组合,通常被称为SSH(Struts2、Spring、Hibernate)集成框架。这个组合在2000年代末到2010年代初广泛应用于构建大型、复杂的企业级Web应用。SSH框架...

    Spring之Spring2.5集成Hibernate3.6

    这篇博客“Spring之Spring2.5集成Hibernate3.6”主要探讨了如何将两个经典的开源框架——Spring 2.5和Hibernate 3.6进行整合,以实现数据持久化的高效管理。 Spring 2.5版本是Spring框架的一个重要里程碑,它引入了...

    spring2.5-hibernate3.04_API

    本资源“spring2.5-hibernate3.04_API”提供了这两个关键库的API帮助文档,旨在帮助开发者深入理解并熟练运用Spring 2.5和Hibernate 3.04,提升开发效率和代码质量。 Spring 2.5是Spring框架的一个重要版本,它在...

    spring2.5 + hibernate3.2 实例源码

    标题 "spring2.5 + hibernate3.2 实例源码" 涉及到的是两个非常关键的Java企业级开发框架:Spring 2.5和Hibernate 3.2。这个实例源码提供了如何将这两个框架集成并进行实际应用的示例。 Spring 2.5是Spring框架的一...

    struts2.0 spring2.5 hibernate3.2 注解最新框架

    总之,Struts2.0、Spring2.5和Hibernate3.2的结合,加上注解的支持,为Java Web开发提供了一个强大且灵活的解决方案。尽管现在有更新的版本和替代框架出现,但掌握这些基础知识对于理解现代框架的工作原理仍然非常...

    spring2.5 + jpa(hibernate3) 实例源码

    在"spring2.5jpa"这个源码实例中,你可能会看到以下几个关键部分: 1. **配置文件**:如`applicationContext.xml`,其中会配置Spring的数据源、JPA实体管理工厂以及事务管理器。 2. **实体类**:代表数据库表的Java...

    springMVC+hibernage+spring(基于spring2.5和hibernate3.0)jar包

    Spring MVC、Hibernate 和 Spring 是Java开发...尽管当前版本已经更新至Spring 5和Hibernate 5,但Spring 2.5和Hibernate 3.0的组合仍广泛应用于许多现有项目中,理解其工作原理和配置方法对于Java开发者来说至关重要。

    Spring2.5+Hibernate3.3+Struts1.3整合需要用到的所有jar文件

    以上就是Spring 2.5、Hibernate 3.3和Struts 1.3整合过程中涉及的关键知识点和步骤。整合这三大框架可以构建出一个强大的Java Web应用,充分利用它们各自的优势,提高开发效率和代码质量。不过,随着技术的发展,...

    Struts1.2+Spring2.5+Hibernate3.2框架搭建(一)

    这里我们关注的是一个经典的Java EE框架组合——Struts1.2、Spring2.5和Hibernate3.2的集成搭建。这个组合在过去的开发实践中被广泛采用,它们各自负责不同的职责,共同构建出强大的后端架构。 Struts1.2是MVC...

    Struts2+Spring2.5+Hibernate3(JPA)+ExtJS3基本后台

    这些文件表明这个项目可能包含了一个使用Struts2、Spring2.5、Hibernate3(JPA)后端技术和ExtJS3前端技术的Web应用实例,集成了富文本编辑、数据展示和用户交互功能。开发者可以通过研究这些文件来学习和理解这些...

    struts1+spring2.5+hibernate整合jar包

    Struts1、Spring2.5和Hibernate是Java Web开发中常用的三大框架,它们各自负责不同的职责,Struts1处理表现层逻辑,Spring2.5管理依赖注入和业务逻辑,Hibernate则专注于持久化层操作。将这三大框架整合在一起,可以...

    Struts1.3 spring2.5 JPA 所需jia包

    为了正确运行一个使用Struts1.3、Spring2.5和JPA的项目,需要将这些jar文件添加到项目的类路径中。确保所有必要的依赖都被包含,否则可能会出现类找不到或者版本冲突等问题。 在实际开发中,为了保证项目的稳定性...

    struts2+spring2.5+hibernate api

    "Spring2.5-中文帮助文档.rar"则可能提供了Spring2.5的中文文档,详细阐述了IoC容器、AOP、数据访问等方面的使用方法。 学习和理解这三个框架的API,有助于开发者深入掌握Java企业级应用的开发,提升代码质量和项目...

    Spring2.5 + JPA(Hibernate)实现

    标题 "Spring2.5 + JPA(Hibernate)实现" 涉及到的是在Java开发环境中,使用Spring框架的2.5版本与Java Persistence API (JPA) 的一种集成方式,其中Hibernate作为JPA的提供商。这篇博文可能是指导开发者如何在项目中...

    spring2.5_hibernate3.2_ibatis2.0_pdf

    标题“spring2.5_hibernate3.2_ibatis2.0_pdf”暗示了这是一个关于Spring 2.5、Hibernate 3.2和iBatis 2.0这三大Java开发框架的综合教程或文档集合,可能以PDF格式提供。这些框架在企业级Java应用程序开发中占有重要...

    struts2+spring2.5+hibernate3.2 例子

    Struts2、Spring2.5和Hibernate3.2是经典的Java Web开发框架组合,它们各自在应用程序的不同层面提供了强大的功能。下面将详细解释这三个框架以及它们如何协同工作。 **Struts2** Struts2是一个基于MVC(Model-View...

Global site tag (gtag.js) - Google Analytics