`
梦想家dream
  • 浏览: 63925 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Hibernate和spring集成

阅读更多
  

      知识点: 1、在框架集成中spring这个框架充当的角色是黏合的作用,所以在做集成的时候我们需要将hibennate的配置文件交给spring启动。
               2、目标
               3、通知
               4、代理
               5、sessionFactory的注入

     首先看一下目录结构:

    
   步骤一:反转出相对应的实体,啰嗦一句,实体必须要有主键(代码如下):
    
  
package cn.zhuojingxinxi.entity;

/**
 * Person entity.
 * 
 * @author MyEclipse Persistence Tools
 */

public class Person implements java.io.Serializable {

	// Fields

	private Long pid;
	private String pname;
	private String pass;

	// Constructors

	/** default constructor */
	public Person() {
	}

	/** full constructor */
	public Person(String pname, String pass) {
		this.pname = pname;
		this.pass = pass;
	}

	// Property accessors

	public Long getPid() {
		return this.pid;
	}

	public void setPid(Long pid) {
		this.pid = pid;
	}

	public String getPname() {
		return this.pname;
	}

	public void setPname(String pname) {
		this.pname = pname;
	}

	public String getPass() {
		return this.pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

}

   
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="cn.zhuojingxinxi.entity.Person" table="PERSON" schema="SCOTT">
        <id name="pid" type="java.lang.Long">
            <column name="PID" precision="22" scale="0" />
            <generator class="increment" />
        </id>
        <property name="pname" type="java.lang.String">
            <column name="PNAME" length="50" />
        </property>
        <property name="pass" type="java.lang.String">
            <column name="PASS" length="50" />
        </property>
    </class>
</hibernate-mapping>


  步骤二、编写Dao层,请一定要编写接口(代码如下):
    
     PersonDao接口:
      
package cn.zhuojingxinxi.dao;

import cn.zhuojingxinxi.entity.Person;

public interface PersonDao {
	public void savePerson(Person person);

}

  
      PersonDaoImp实现类(为了能够拿到session必须继承HibernateDaoSupport):
  
package cn.zhuojingxinxi.dao.impl;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import cn.zhuojingxinxi.dao.PersonDao;
import cn.zhuojingxinxi.entity.Person;

public class PersonDaoImpl extends HibernateDaoSupport implements PersonDao {
	
	

	public void savePerson(Person person) {
		
		 this.getHibernateTemplate().save(person);
	}

}


   步骤三、编写biz层(即业务处理层)(同样必须写接口):
     PersonService接口:
   
package cn.zhuojingxinxi.biz;

import cn.zhuojingxinxi.entity.Person;

public interface PersonService {
	public void savePerson(Person person);

}


    PersonServiceImp实现类(实现类中操作dao层中的方法,所以必须将PersonDao注入进来):
   
package cn.zhuojingxinxi.biz.impl;

import cn.zhuojingxinxi.biz.PersonService;
import cn.zhuojingxinxi.dao.PersonDao;
import cn.zhuojingxinxi.entity.Person;

public class PersonServiceImpl implements PersonService{
	
   private PersonDao personDao=null;
   


	public void setPersonDao(PersonDao personDao) {
	this.personDao = personDao;
}



	    public void savePerson(Person person) {
	    	personDao.savePerson(person);
		
		
	}

}


步骤四、编写测试类代码(假如还要和struts2集成,不要开tomcat测试,因为加载速度慢,所以编写测试类是有必要的)
   
package cn.zhuojingxinxi.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.zhuojingxinxi.biz.PersonService;
import cn.zhuojingxinxi.dao.PersonDao;
import cn.zhuojingxinxi.entity.Person;

public class Test {
	
	public static void main(String[] args) {
		ApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
		// SessionFactory sessionFactory= (SessionFactory)context.getBean("sessionFactory");
//		Session session=sessionFactory.openSession();
//		
//		System.out.println(session);
		 
		 PersonDao  dao=(PersonDao)context.getBean("personDao");
		 
		 PersonService personService=(PersonService)context.getBean("personService");
		 
		 Person p=new  Person();
		 p.setPname("xiaohua");
		 p.setPass("123321");
		 
		 personService.savePerson(p);
		 
	
	}

}


      步骤五、applicationContext.xml的编写(非常重要)
     
<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	                    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
	                    http://www.springframework.org/schema/tx 
	                    http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
	                    http://www.springframework.org/schema/aop 
	                    http://www.springframework.org/schema/aop /spring-aop-2.0.xsd"
	                    
	                    
	                    
	                    >


	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation"
			value="classpath:hibernate.cfg.xml">
		</property>
	</bean>
	
	   <bean id="personDao" class="cn.zhuojingxinxi.dao.impl.PersonDaoImpl">
	   <property name="sessionFactory" ref="sessionFactory"></property>
	   </bean>
	   
	   <!-- 目标 -->
	   <bean id="personService" class="cn.zhuojingxinxi.biz.impl.PersonServiceImpl">
	      <property name="personDao" ref="personDao"></property>
	   
	   </bean>
	   
	   <!-- 定义一个事务管理器(通知) -->
	   
	   <bean id="transactionManage" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
	     <property name="sessionFactory" ref="sessionFactory"></property>
	   </bean>
	   
	   <!-- 代理 -->
	   <bean id="personServiceProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
	     
	     <property name="target" ref="personService"></property>
	     <property name="transactionManager" ref="transactionManage"></property>
	     <property name="transactionAttributes">
	        <props>
	          <prop key="save*">PROPAGATION_REQUIRED</prop>
	        </props>
	     </property>
	   
	   </bean>
	
	
	</beans>

需要注意的是:必须配置开头的tx、aop,否则事务是不会提交的。

源码下载请点这里:
  
  • 大小: 16.4 KB
1
0
分享到:
评论

相关推荐

    Hibernate和Spring集成分页方法.rar

    本教程将深入探讨如何在Hibernate和Spring集成环境中实现分页功能。 首先,我们需要了解Hibernate和Spring的基本概念。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库...

    C:\Struts,Hibernate,Spring集成开发宝典\Struts,Hibernate,Spring集成开发宝典光盘资料6.rar

    将Struts、Hibernate和Spring集成,可以构建出高效、灵活的企业级应用架构。Spring作为基础框架,负责管理应用的生命周期和组件依赖;Struts作为前端控制器,处理HTTP请求并调用业务服务;Hibernate则作为持久层框架...

    struts_hibernate_spring集成

    通过上述配置和实践,可以成功地将Struts、Hibernate和Spring集成到一起,构建出健壮的Web应用程序。然而,集成过程中也需要注意一些细节,比如避免循环依赖,确保配置的准确无误,以及对性能和安全性的持续关注。...

    Struts-Hibernate-Spring集成开发宝典最新版

    4. **集成开发**:将Struts、Hibernate和Spring集成,可以形成一个强大的开发平台。Spring作为容器,可以管理Struts的Action和Hibernate的SessionFactory,提供事务控制。Struts与Spring的结合通常通过Spring MVC...

    eclipse_struts_hibernate_spring集成开发宝典 StrutsInterface.rar

    总的来说,这个压缩包中的"StrutsInterface"可能包含了关于如何在Eclipse环境中搭建和配置Struts、Hibernate、Spring集成开发环境的详细步骤,以及相关的示例代码和教程文档。通过深入学习和实践,你将能熟练地运用...

    Struts.Hibernate.Spring集成开发宝典.rar

    《Struts.Hibernate.Spring集成开发宝典》是一本专注于Java Web开发领域的技术书籍,主要讲解了如何将三个流行且强大的框架——Struts、Hibernate和Spring有效地整合在一起,以构建高效、可维护的企业级应用程序。...

    osworkflow中文入门指南,osworkflow+hibernate+spring集成配置,osworkflow-2.8.0.jar

    **osworkflow** 是一个开源的工作流管理系统,专为Java...通过学习和实践这些文档,开发者可以掌握osworkflow的基本用法,了解如何将其与Hibernate和Spring集成,从而在实际项目中构建出高效、灵活的工作流管理系统。

    eclipse_struts_hibernate_spring集成开发宝典 blog.rar

    《Eclipse、Struts、Hibernate、Spring 集成开发宝典》是针对Java企业级应用开发的一套经典教程,其核心在于讲解如何在Eclipse环境下整合Struts、Hibernate和Spring这三个主流框架,构建高效、灵活的企业级应用程序...

    Struts,Hibernate,Spring集成开发宝典.pdf

    《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...

    C:\Struts,Hibernate,Spring集成开发宝典\Struts,Hibernate,Spring集成开发宝典光盘资料10.rar

    《Struts,Hibernate,Spring集成开发宝典》是一本深入探讨Java企业级应用开发的权威指南,主要聚焦于三大主流框架——Struts、Hibernate和Spring的整合应用。这本书的光盘资料10.rar包含了丰富的学习资源,对于想要...

    Spring与Hibernate集成

    6. **测试和运行**: 最后,编写测试用例验证Spring和Hibernate的集成是否成功。运行应用,确保数据的持久化和检索功能正常工作。 在实际开发中,为了提高代码的可读性和可维护性,我们可以采用基于注解的配置和实体...

    C:\Struts,Hibernate,Spring集成开发宝典\Struts,Hibernate,Spring集成开发宝典光盘资料12.rar

    《Struts,Hibernate,Spring集成开发宝典》是一本深入探讨Java企业级应用开发的权威指南,主要聚焦于三大主流框架——Struts、Hibernate和Spring的整合应用。这些框架是Java EE(以前的J2EE)开发中的核心组件,极...

    ssh集成jar包,支持spring集成Hibernate,spring集成struts2等

    - Spring与Hibernate集成,通常使用Spring的HibernateTemplate或HibernateDaoSupport,提供事务管理和数据访问抽象,使得代码更简洁,事务控制更方便。 - Spring与Struts2集成,Spring可以作为Struts2的Action的...

    Spring与Hibernate集成---声明式事务

    总结来说,Spring与Hibernate的集成使我们可以轻松地在应用程序中管理数据访问和事务,同时保持代码的整洁和模块化。声明式事务管理让开发者专注于业务逻辑,而无需关心事务控制的细节,提高了开发效率和代码质量。...

    Struts Hibernate Spring集成开发宝典 源码

    《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...

    Struts,Hibernate,Spring集成开发宝典.pdf

    总之,《Struts、Hibernate、Spring集成开发宝典》是一本实用的技术指南,对于想要提升Java EE开发技能的开发者来说,它不仅提供了理论知识,还有丰富的实践指导,能够帮助读者深入理解这三大框架的集成原理和最佳...

    C:\Struts,Hibernate,Spring集成开发宝典\Struts,Hibernate,Spring集成开发宝典光盘资料7.rar

    标题中的"C:\Struts,Hibernate,Spring集成开发宝典\Struts,Hibernate,Spring集成开发宝典光盘资料7.rar"表明这是一个关于Struts、Hibernate和Spring三大Java EE框架集成开发的资源包,可能包含了教程、示例代码...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    本主题将深入探讨Hibernate的编程式事务管理和Spring AOP的声明式事务管理,以及两者如何在实际项目中集成使用。 **Hibernate编程式事务管理** Hibernate作为流行的ORM(对象关系映射)框架,提供了对JDBC事务的...

Global site tag (gtag.js) - Google Analytics