知识点: 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
分享到:
相关推荐
本教程将深入探讨如何在Hibernate和Spring集成环境中实现分页功能。 首先,我们需要了解Hibernate和Spring的基本概念。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库...
将Struts、Hibernate和Spring集成,可以构建出高效、灵活的企业级应用架构。Spring作为基础框架,负责管理应用的生命周期和组件依赖;Struts作为前端控制器,处理HTTP请求并调用业务服务;Hibernate则作为持久层框架...
通过上述配置和实践,可以成功地将Struts、Hibernate和Spring集成到一起,构建出健壮的Web应用程序。然而,集成过程中也需要注意一些细节,比如避免循环依赖,确保配置的准确无误,以及对性能和安全性的持续关注。...
4. **集成开发**:将Struts、Hibernate和Spring集成,可以形成一个强大的开发平台。Spring作为容器,可以管理Struts的Action和Hibernate的SessionFactory,提供事务控制。Struts与Spring的结合通常通过Spring MVC...
总的来说,这个压缩包中的"StrutsInterface"可能包含了关于如何在Eclipse环境中搭建和配置Struts、Hibernate、Spring集成开发环境的详细步骤,以及相关的示例代码和教程文档。通过深入学习和实践,你将能熟练地运用...
《Struts.Hibernate.Spring集成开发宝典》是一本专注于Java Web开发领域的技术书籍,主要讲解了如何将三个流行且强大的框架——Struts、Hibernate和Spring有效地整合在一起,以构建高效、可维护的企业级应用程序。...
**osworkflow** 是一个开源的工作流管理系统,专为Java...通过学习和实践这些文档,开发者可以掌握osworkflow的基本用法,了解如何将其与Hibernate和Spring集成,从而在实际项目中构建出高效、灵活的工作流管理系统。
《Eclipse、Struts、Hibernate、Spring 集成开发宝典》是针对Java企业级应用开发的一套经典教程,其核心在于讲解如何在Eclipse环境下整合Struts、Hibernate和Spring这三个主流框架,构建高效、灵活的企业级应用程序...
《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...
《Struts,Hibernate,Spring集成开发宝典》是一本深入探讨Java企业级应用开发的权威指南,主要聚焦于三大主流框架——Struts、Hibernate和Spring的整合应用。这本书的光盘资料10.rar包含了丰富的学习资源,对于想要...
6. **测试和运行**: 最后,编写测试用例验证Spring和Hibernate的集成是否成功。运行应用,确保数据的持久化和检索功能正常工作。 在实际开发中,为了提高代码的可读性和可维护性,我们可以采用基于注解的配置和实体...
《Struts,Hibernate,Spring集成开发宝典》是一本深入探讨Java企业级应用开发的权威指南,主要聚焦于三大主流框架——Struts、Hibernate和Spring的整合应用。这些框架是Java EE(以前的J2EE)开发中的核心组件,极...
- Spring与Hibernate集成,通常使用Spring的HibernateTemplate或HibernateDaoSupport,提供事务管理和数据访问抽象,使得代码更简洁,事务控制更方便。 - Spring与Struts2集成,Spring可以作为Struts2的Action的...
总结来说,Spring与Hibernate的集成使我们可以轻松地在应用程序中管理数据访问和事务,同时保持代码的整洁和模块化。声明式事务管理让开发者专注于业务逻辑,而无需关心事务控制的细节,提高了开发效率和代码质量。...
《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...
总之,《Struts、Hibernate、Spring集成开发宝典》是一本实用的技术指南,对于想要提升Java EE开发技能的开发者来说,它不仅提供了理论知识,还有丰富的实践指导,能够帮助读者深入理解这三大框架的集成原理和最佳...
标题中的"C:\Struts,Hibernate,Spring集成开发宝典\Struts,Hibernate,Spring集成开发宝典光盘资料7.rar"表明这是一个关于Struts、Hibernate和Spring三大Java EE框架集成开发的资源包,可能包含了教程、示例代码...
本主题将深入探讨Hibernate的编程式事务管理和Spring AOP的声明式事务管理,以及两者如何在实际项目中集成使用。 **Hibernate编程式事务管理** Hibernate作为流行的ORM(对象关系映射)框架,提供了对JDBC事务的...