Spring的ORM模块(结合Hibernate)

本文介绍了如何在Spring中使用ORM模块结合Hibernate,强调了Hibernate在Spring中作为Bean进行管理,利用HibernateDaoSupport简化DAO操作,详细阐述了Spring配置Hibernate的步骤,包括数据库连接属性文件、applicationContext.xml的设置,并探讨了Spring管理Hibernate事务的注解和XML配置方式。

概述

Spring的ORM模块对Hibernate、iBatis、JDO等ORM框架提供支持。

ORM模块依赖于dom4j-1.6.jar和antlr.jar,需要自己添加两个类库。

本篇文章以结合Hibernate为例。

在Spring中Hibernate只是一个Bean

在Spring中,Hibernate的资源要交给Spring来管理。Hibernate和SessionFactory等只是Spring中的一个特殊的Bean,由Spring负责实例化与销毁。

这意味着我们不需要自己手动的去开启和关闭一个Session或Transaction,这些工作将由Spring自动帮我们完成。

协助我们的HibernateDaoSupport类

这是Spring为我们提供的一个方便我们进行一些DAO操作的类,我们只需要在自己的相应的Dao类中继承这个类就可以了。

常用的方法

getHibernateTemplate(),获取一个模板实例
这个实例为我们提供了一些常用的方法,比如:
persist(Object obj);用于保存一个对象
find(String HQL);用于查询


当然我们可以获取到一个session对象
getSession(),获取一个Session,调用Hibernate的API进行操作。

在Spring中配置Hibernate

在Hibernate中我们会有自己的配置文件,而在Spring中我们可以将Hibernate配置在Spring中。

配置实例

1. 配置Hibernate数据库连接属性文件
dataSource.password=admin
dataSource.username=root
dataSource.databaseName=db_test
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.dialect=org.hibernate.dialect.MySQL5Dialect
dataSource.serverName=localhost:3306
#dataSource.url=jdbc:mysql://localhost:3306/sunsheen?useUnicode=true&characterEncoding=utf-8
dataSource.url=jdbc:mysql://localhost:3306/sunsheen?useUnicode=true&characterEncoding=utf-8
dataSource.properties=user=${dataSource.username};databaseName=${dataSource.databaseName};serverName=${dataSource.serverName};password=${dataSource.password}
dataSource.hbm2ddl.auto=update
2. 配置Spring的applicationContext.xml
<context:annotation-config />
    <context:component-scan base-package="com.lidengju" />  <!-- 扫描包下的所有注解 -->

    <context:property-placeholder location="classpath:/hibernate.properties" /> <!-- 读取属性配置文件 -->

  
spring-core.jar(必须):这个jar 文件包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 外部依赖Commons Logging, (Log4J)spring-beans.jar(必须):这 个jar 文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI 支持,引入spring-core.jar 及spring-beans.jar 文件就可以了。 外部依赖spring-core,(CGLIB)spring-aop.jar(必须):这个jar 文件包含在应用中使用Spring 的AOP 特性时所需的类和源码级元数据支持。使用基于AOP 的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。 外部依赖spring-core, (spring-beans,AOP Alliance, CGLIB,Commons Attributes)spring-context.jar(必须):这个jar 文件在基础IOC功能上为Spring 核心提供了大量扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。 外部依赖spring-beans, (spring-aop)spring-jdbc.jar(必须) :这个jar 文件包含对Spring 对JDBC 数据访问进行封装的所有类。 外部依赖spring-beans,spring-dao。 spring-web.jar(必须) :这个jar 文件包含Web 应用开发时,用到Spring 框架时所需的核心类,包括自动载入Web Application Context 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。 外部依赖spring-context, Servlet API, (JSP API, JSTL, Commons FileUpload, COS)spring-webmvc.jar :这个jar 文件包含Spring MVC 框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。包括框架的Servlets,Web MVC框架,控制器和视图支持。当然,如果你的应用使用了独立的MVC 框架,则无需这个JAR 文件里的任何类。 外部依赖spring-web, (spring-support,Tiles,iText,POI)spring-aspects.jar :提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,比如Eclipse AJDT。 spring-context-support.jar:Spring context的扩展支持,用于MVC方面。 spring-expression.jar:Spring表达式语言。 spring-instrument.jar:Spring对服务器的代理接口 spring-instrument-tomcat.jar:Spring对tomcat连接池的集成 spring-jms.jar:为简化jms api的使用而做的简单封装。 外部依赖spring-beans,spring-dao,JMS API。 spring-orm.jar:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现 spring-oxm.jar:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换 spring-messaging.jar: spring-test.jar:对JUNIT等测试框架的简单封装 spring-tx.jar:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。 spring-webmvc-portlet.jar:Spring MVC的增强 spring-websocket.jar:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值