创立Spring配置文件
spring-hibernate.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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">
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
?
</beans>
上面bean定义了一个类型'org.apache.commons.dbcp.BasicDataSource'的data-source. 更重要的是, 它定义了各种访问数据库所需要的连接属性。
现在让我们定义第二个Spring Bean:SessionFactory.如果你有Hibernate编程经验, 你将实现SessionFactory Bean 负责去创建Session对象,通过Session对象处理 Transaction 和数据访问。 现在同样的SessionFactory Bean必须用Spring的方式进行配置如下,
<bean id="mySessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="mappingResources">
<list>
<value>com/xxxx/audit/pojo/Activitylog.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>hibernate.dialect=org.hibernate.dialect.Oracle9Dialect</value>
</property>
</bean>
当配置SessionFactory Bean时,我们已经给出两个强制信息。 一个是data-source 信息包含访问数据库的细节;第二个是一个映射文件的列表,他包含了数据库表和Java类之间的映射信息,我们在第2部分已经定义了他们,在‘list’标志中应用。
第三个重要的Spring Bean是Hibernate Template. 它提供了一个低级数据访问和操作的包装,精确地它包含以下方法:insert/delete/update/find数据库中的数据,对Hibernate Template的配置唯一的变量是SessionFactory Bean对象如下所示
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="mySessionFactory"/>
</property>
</bean>
最后的Bean定义是Dao类,是客户化的类。 虽然此类必须定义在应用级,它能够包含任意数量客户数据访问方法的封装,虽然我们知道它是与数据库交互的 Hibernate Template类,它将是一个Hibernate Template的理想引用
<bean id="ActivitylogDao" class="javabeat.spring.hibernate.ActivitylogDao">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate"/>
</property>
</bean>
定义ActivitylogDao class
如上所述, 这个ActivitylogDao 类能够包含任意数量的方法供客户访问,这个类的设计有两种选择,第一种是此类能够直接依赖Hibernate Template 对象访问数据,它由IOC注入。 第二种是它你呢个够利用Hibernate API做数据访问,此类声明如下
ActivitylogDao.java
package javabeat.spring.hibernate;
import java.sql.SQLException;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
public class ActivitylogDao {
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate){
this.hibernateTemplate = hibernateTemplate;
}
public HibernateTemplate getHibernateTemplate(){
return hibernateTemplate;
}
public Activitylog getActivitylog (final String id){
HibernateCallback callback = new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException,SQLException {
return session.load(Activitylog.class, id);
}
};
return (Activitylog)hibernateTemplate.execute(callback);
}
public void saveOrUpdate(final Activitylog activitylog){
HibernateCallback callback = new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException,SQLException {
session.saveOrUpdate(activitylog);
return null;
}
};
hibernateTemplate.execute(callback);
}
}
此类利用了Hibernate API (特别是Session对象) 用于数据访问。引导Spring访问 Hibernate API, 我们把逻辑细化,利用Hibernate API 融入Spring知道的著名接口中的特别著名的方法。 It happens to be the HibernateCallback 接口使用方法doInHibernate() ,通过传送一个Hibernate Session 实例, ActivitylogDao类我们已经定义了两个方法:getActivitylog () and saveOrUpdate .使用Hibernate APIs, 我们定义了HibernateCallback中的代码, doInHibernate() 方法和通知Spring 执行这些代码 ,传送接口引用HibernateTemplate.execute() 方法。
3.6) 客户端测试程序
SpringHibernateTest.java
package javabeat.spring.hibernate;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.orm.hibernate3.LocalSessionFactoryBean;
public class SpringHibernateTest {
public static void main(String[] args) {
Resource resource = new FileSystemResource("./spring-hibernate.xml");
BeanFactory factory = new XmlBeanFactory(resource);
Activitylog activitylog = new Activitylog ();
activitylog.setId("123");
activitylog.setName("ABC");
activitylog.setTaskcode(“8000933120);
activitylog.setTasktime(“2008 11 20 12:02:30 888888”);
ActivitylogDao activitylogDao = (ActivitylogDao)factory.getBean(
"activitylogDao");
activitylogDao.saveOrUpdate(activitylog);
Activitylog actResult = activitylogDao.getActivitylog ("123");
System.out.println(actResult);
}
}
最后, 我们运行客户应用访问测试数据,过程像这样。 当方法BeanFactory.getBean("ActivitylogDao") 被调用, Spring 找到ActivitylogDao Bean 的指针。 它产生Hibernate Template 对象。 然后初始化Hibernate Template对象, 我们将看到一个Session Factory Bean对象被引用。然后当建立Session Factory Bean对象的时候, 将得到data-source 信息和数据库表和Java类。
4)总结
本文讨论了Spring 和Hibernate的集成。 既讨论了需求也讨论了它带来的好处。 通过一个详细的实例一步步清晰地演示了集成工作
分享到:
相关推荐
Spring 和 Hibernate 是两个非常重要的 Java 开发框架,它们在企业级应用开发中占据了核心地位。Spring 是一个全面的后端应用程序框架,而 Hibernate 则是一个流行的对象关系映射(ORM)工具,它使得 Java 开发人员...
在现代Java Web开发中,Spring和Hibernate是两个非常重要的开源框架,它们分别在依赖注入和对象关系映射(ORM)领域有着广泛的应用。Spring作为一个全面的轻量级应用框架,提供了包括事务管理、AOP(面向切面编程)...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自解决应用程序的不同问题,而将这三者整合在一起可以构建高效、灵活的企业级应用。Struts2作为MVC(Model-View-Controller)框架,负责处理用户请求...
在IT行业中,集成Spring和Hibernate框架是常见的开发实践,尤其在企业级应用中,这两个框架的结合能够提供强大的数据访问和业务逻辑管理能力。MyEclipse作为一款强大的Java集成开发环境,提供了便捷的工具支持来简化...
在JavaEE开发中,Spring和Hibernate是两个非常重要的框架,它们分别负责应用的依赖管理和持久化数据。"SSH"是Struts、Spring和Hibernate的缩写,代表了经典的JavaEE三层架构模型:表现层(Struts)、业务逻辑层...
在Java企业级开发中,Spring框架和Hibernate框架的整合是常见的技术栈选择,它们能够帮助开发者构建高效、灵活且易于维护的后端系统。本文将深入探讨如何在JavaEE项目中整合Spring和Hibernate,以及hibernate.cfg....
在Java企业级应用开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全面的后端应用框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,而Hibernate则是一个强大的ORM(对象...
"Java-Struts2-Spring和Hibernate架构应用实例" 本文主要讲述了如何使用Struts2、Spring和Hibernate框架来实现一个图书管理系统,涵盖了基本的增加、删除、修改、查询等功能。下面是对标题、描述、标签和部分内容的...
在IT领域,Spring和Hibernate是两个非常重要的框架,它们分别在应用上下文管理和持久化层提供了强大的支持。Spring是一个全面的后端开发框架,而Hibernate则是一个对象关系映射(ORM)工具,使得Java开发者可以方便...
Spring 和 Hibernate 是两个在 Java 开发领域非常重要的框架,它们分别专注于不同的方面:Spring 主要是为了解耦合和提供依赖注入,而 Hibernate 则是用于对象关系映射(ORM),简化数据库操作。这两个框架的源代码...
在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在依赖注入和对象关系映射领域扮演着核心角色。Spring框架提供了丰富的功能,包括但不限于控制反转(IoC)、面向切面编程(AOP)以及与各种持久化技术...
在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在应用层和数据持久化层发挥着关键作用。Spring是一个全面的Java企业级应用开发框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)...
在Java企业级应用开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全方位的轻量级应用框架,提供了强大的依赖注入、AOP(面向切面编程)以及各种服务管理功能。而Hibernate则是一个优秀的对象关系映射...
在IT行业中,Spring和Hibernate是两个非常重要的框架。Spring是一个全面的Java企业级应用开发框架,而Hibernate则是一个优秀的对象关系映射(ORM)工具,它们的集成为开发者提供了强大的数据访问能力。在这个名为...
在Java开发领域,Spring框架和Hibernate是两个非常重要的开源库,它们分别负责应用程序的依赖管理和对象关系映射(ORM)。Spring作为一个全面的轻量级应用框架,提供了事务管理、AOP(面向切面编程)、IoC(控制反转...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自在应用程序的不同层面发挥着重要作用。Struts2主要用于控制层,实现MVC(Model-View-Controller)设计模式;Spring是一个全面的后端框架,提供了...
在 MyEclipse 下整合 Spring 和 Hibernate 是一个常见的开发任务,特别是在构建企业级 Java 应用程序时。Spring 是一个强大的轻量级框架,提供依赖注入、AOP(面向切面编程)等功能,而 Hibernate 是一个优秀的 ORM...
本教程将重点介绍如何使用Maven作为项目管理工具,结合Spring MVC作为控制层框架和Hibernate作为持久层框架,来构建一个完整的Web应用。Maven是Apache组织提供的一个项目管理和综合工具,它可以帮助我们管理项目的...
Java Web技术是构建基于互联网应用程序的关键,Spring和Hibernate是其中两个非常重要的框架。Spring是一个全面的后端开发框架,而Hibernate则是一个强大的对象关系映射(ORM)工具,两者结合可以大大提高开发效率和...