`
panshaobinSB
  • 浏览: 203955 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

最简单的hibernate整合spring(1)

 
阅读更多
http://feichen00.blog.sohu.com/91380336.html

利用spring提供的HibernateDaoSupport类来简化Hibernate的事务操作:

实体类:

package com.entity;

public class Person {
	private Integer id;
	private String name;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}



DAO接口类:
package com.dao;

import com.entity.Person;

public interface PersonDao {
	Person get(int id);
	void save(Person person);
	void update(Person person);
	void delete(Person person);
}


DAO接口实现类:

package com.impl;

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

import com.dao.PersonDao;
import com.entity.Person;

public class PersonDaoImpl extends HibernateDaoSupport implements PersonDao {

	@Override
	public Person get(int id) {
		return (Person)getHibernateTemplate().get(Person.class, new Integer(id));
	}

	@Override
	public void save(Person person) {
		getHibernateTemplate().save(person);
	}

	@Override
	public void update(Person person) {
		Person p = (Person)getHibernateTemplate().load(Person.class, new Integer(person.getId()));
		getHibernateTemplate().update(person);
	}

	@Override
	public void delete(Person person) {
		Person p = (Person)getHibernateTemplate().load(Person.class, new Integer(person.getId()));
		getHibernateTemplate().delete(p);
	}

}



spring配置文件applicationContext.xml:

<?xml version="1.0" encoding="gb2312"?>
<!-- Spring配置文件的DTD定义 -->
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
<!-- Spring配置文件的根元素是beans -->
<beans>

	<!--定义数据源,该bean的ID为dataSource -->
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<!-- 指定数据库驱动 -->
		<property name="driverClassName">
			<value>com.mysql.jdbc.Driver</value>
		</property>
		<!-- 指定连接数据库的URL -->
		<property name="url">
			<value>jdbc:mysql://localhost:3306/lee</value>
		</property>
		<!-- root为数据库的用户名 -->
		<property name="username">
			<value>root</value>
		</property>
		<!-- pass为数据库密码 -->
		<property name="password">
			<value>root</value>
		</property>
	</bean>


	<!--定义Hibernate的SessionFactory -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<!-- 依赖注入数据源,注入正是上文定义的dataSource -->
		<property name="dataSource">
			<ref local="dataSource" />
		</property>
		<!-- mappingResouces属性用来列出全部映射文件 -->
		<property name="mappingResources">
			<list>
			<!--以下用来列出所有的PO映射文件 -->
				<value>Person.hbm.xml</value>
			</list>
		</property>
		<!--定义Hibernate的SessionFactory的属性 -->
		<property name="hibernateProperties">
			<props>
				<!-- 指定Hibernate的连接方言 -->
			<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
				<!-- 不同数据库连接,启动时选择create,update,create-drop -->
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>
	</bean>


	<!-- 配置Person持久化类的DAO bean -->
	<bean id="PersonDaoImpl" class="com.impl.PersonDaoImpl">
		<!-- 采用依赖注入来传入SessionFactory的引用 -->
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>

</beans>



Hibernate实体类映射文件Person.hbm.xml:

<?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">

<hibernate-mapping>

	<class name="com.entity.Person" table="person">
		<!-- 配置主键信息 -->
		<id name="id" column="ID" type="integer">
			<generator class="identity"></generator>
		</id>
		
		<!-- 配置属性信息,默认type为string类型,所以不需要配置 -->
		<property name="name" column="NAME" not-null="true" type="string"></property>
	</class>

</hibernate-mapping>


测试类:(记得根据实际数据来编写测试数据)

package com.test;

import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.entity.Person;
import com.impl.PersonDaoImpl;

public class TestHibernate {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {

	}

	@Test
	public void save() {
		 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		   PersonDaoImpl personDaoImpl = (PersonDaoImpl)ctx.getBean("PersonDaoImpl");
		  System.out.println(personDaoImpl);
		  Person person = new Person();
		  person.setName("Tom");
		  personDaoImpl.save(person);
	}
	
	@Test
	public void get() {
		 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		  PersonDaoImpl personDaoImpl = (PersonDaoImpl)ctx.getBean("PersonDaoImpl");
		  Person person = personDaoImpl.get(1);
		  System.out.println(person.getName());
	}
	
	@Test
	public void update() {
		 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		  PersonDaoImpl personDaoImpl = (PersonDaoImpl)ctx.getBean("PersonDaoImpl");
		  System.out.println(personDaoImpl);
		  Person person = new Person();
		  person.setId(1);
		  person.setName("猫");
		  personDaoImpl.update(person);
	}
	
	@Test
	public void delete() {
		 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		   PersonDaoImpl personDaoImpl = (PersonDaoImpl)ctx.getBean("PersonDaoImpl");
		  System.out.println(personDaoImpl);
		  Person person = new Person();
		  person.setId(2);
		  personDaoImpl.delete(person);
	}
	
}



其他的结构图,lib可以从附件获得。
  • 大小: 26 KB
分享到:
评论

相关推荐

    Spring与Hibernate整合

    在"25_黑马程序员_黎活明_Spring2.5视频教程_搭建和配置Spring与Hibernate整合的环境.avi"这个文件中,可能详细演示了如何配置这些库到项目的类路径中。 接着,需要配置Spring的IoC容器。这可以通过XML配置文件完成...

    struts2 spring hibernate整合的简单登录代码

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...

    Spring与hibernate 整合 简单示例

    本教程将详细介绍如何整合Spring和Hibernate,以创建一个简单的工作示例。 首先,我们需要在项目中引入Spring和Hibernate的依赖。这通常通过Maven或Gradle的配置文件完成,确保添加对应的库依赖,如Spring的核心库...

    SSH(struts2,Hibernate,Spring)整合及测试亲测可用

    在整合过程中,开发者需要注意配置文件的正确设置,包括Struts2的struts.xml、Hibernate的hibernate.cfg.xml以及Spring的applicationContext.xml等。还需要确保各框架之间的依赖注入正确无误,例如,Spring需要知道...

    struts+spring+hibernate整合

    通过以上步骤,一个基本的Struts、Spring和Hibernate整合的应用就搭建完成了。这个整合的关键在于Struts处理HTTP请求,Spring管理业务对象和依赖,而Hibernate则处理数据库操作。这样的架构可以实现松耦合,便于代码...

    spring+hibernate整合实现简单数据库添加记录

    本文将深入探讨如何将Spring与Hibernate整合,以实现对数据库的简单添加记录功能,这对于初学者来说是一次宝贵的学习机会。 首先,我们需要理解Spring的核心概念。Spring提供了一个依赖注入(DI)容器,它负责管理...

    spring+hibernate整合demo

    在"标签"中,"spring 整合 hibernate helloworld"进一步强调了这是关于Spring与Hibernate整合的基础教学,可能包含了一个简单的入门级示例。"helloworld"通常表示最基础的程序,用于展示框架的基本用法。 在"压缩...

    spring+springMVC+Hibernate整合

    1. **配置Spring**:首先,我们需要创建一个Spring的核心配置文件(如`applicationContext.xml`),在这里定义bean的实例化、依赖注入以及事务管理等。例如,我们可以配置数据源、SessionFactory(Hibernate的会话...

    Struts 2+Hibernate+Spring整合开发技术详解随书源码18

    4. **整合流程**:整合Struts 2、Hibernate和Spring,首先需要配置Spring的IoC容器来管理所有组件,包括Action、DAO和Service。然后,使用Spring的HibernateTemplate或JdbcTemplate进行数据访问。接着,将Struts 2与...

    JavavEE轻量级框架Struts2+Hibernate+Spring整合开发

    JavaEE轻量级框架Struts2、Hibernate和Spring的整合开发是现代企业级应用开发中的常见模式,这种组合被称为SSH(Struts2、Spring、Hibernate)框架。这三种技术分别承担了不同职责,共同构建了一个高效、灵活且可...

    struts2、hibernate和spring框架整合所需的jar以及配置文档

    Spring还集成了其他框架,包括Struts2和Hibernate,提供了统一的事务管理策略,使得在多个框架间协调工作变得更加简单。 在SSH整合过程中,你需要以下关键的jar包: 1. **Struts2** 相关的jar:包括`struts2-core....

    spring和struts和hibernate最简单的整合

    以上就是Spring、Struts和Hibernate的简单整合,这种整合方式在早期的Java Web项目中非常常见。虽然现代开发趋势更倾向于使用Spring Boot和Spring MVC,但理解这种传统的三层架构对于理解现代框架的工作原理仍然很有...

    最简单的Spring+Struts2+Hibernate整合例子

    最简单的Spring+Struts2+Hibernate整合例子,MySql数据库,IDE是JavaEE版的Eclipse,tomcat7.0 ,实现功能:登录+注册+增删改查+一键清空数据库表的数据。所有jar文件都在里面了。

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例完整源码

    《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例完整源码》是针对Java企业级开发的一份重要资源,它涵盖了四个关键的技术领域:Eclipse集成开发环境,Struts MVC框架,Hibernate对象关系映射工具,以及...

    SSH整合学习笔记之spring与hibernate整合(二)之c3p0

    在Spring与Hibernate整合的过程中,c3p0是一个重要的第三方组件,它是一个开源的JDBC连接池,能够有效地管理和重用数据库连接,从而减少创建和关闭连接的开销,提高系统性能。c3p0提供了许多配置选项,如最小连接数...

    三大框架整合(struts+Hibernate+spring)

    通常,Spring会作为"粘合剂",将Struts和Hibernate整合在一起。例如,Spring可以管理Struts的Action,实现业务逻辑的解耦;同时,Spring可以配置Hibernate SessionFactory,并通过AOP代理处理数据访问事务。 5. **...

    SpringMVC+hibernate4.3+Spring4.1整合demo

    4. **整合Spring与Hibernate**:通过Spring的LocalSessionFactoryBean来创建SessionFactory,同时利用Spring的TransactionManager来管理事务。 5. **编写业务逻辑**:在Spring的Service层中注入DAO,使用Hibernate的...

    Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA+JdbcTemplate

    在"Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA+JdbcTemplate"的DEMO中,开发者通常会创建一个Maven工程,配置相关依赖,然后分别设置Spring的配置文件(如`applicationContext.xml`)、SpringMVC的配置文件...

    Tapestry+Hibernate+spring

    【标题】"Tapestry+Hibernate+Spring 整合应用示例" 【正文】 Tapestry、Hibernate 和 Spring 是三个在 Java Web 开发中非常关键的开源框架,它们各自在应用程序的不同层面上发挥着重要作用。Tapestry 是一个基于...

Global site tag (gtag.js) - Google Analytics