整合Hibernate3.x
As of Spring 3.0, Spring requires Hibernate 3.2 or later.
Hibernate 3和Hibernate 4有一些区别,所以对于spring而已,集成Hibernate 3和集成Hibernate 4是不一样的,而且集成的方式有很多,这里只讲这一种基本的。
现在讲解如何集成Hibernate 3
1.导入Hibernate、Spring和log4j和dbcp的依赖包(log4j一定需要吗,等着去看孔浩的Hibernate视频)
1.1导入Spring的依赖包
1.2导入Log4j.jar的依赖包(Hibernate一定需要Log4j吗?)--->log4j-1.2.17.jar(还需要有log4j的配置文件log4j.properties)
1.3导入dbcp的依赖包(配置DataSource需要,Spring整合JDBC中有提到)
1.1导入Hibernate的依赖包
对于Hibernate的包,在Hibernate的rar压缩文件里面做了很好的区分,在lib文件夹里面有几个文件夹,jpa,optional,required 等等
(1)hibernate3.jar
(2)optional是可选的意思,required是必须的意思,所以我们把required文件夹里面的包都考进来,optional文件夹的包我们暂时就不需要了
(3)如果要支持Annotation,我们需要把jpa的包考进来
(4)slf4j-api.jar(这个是做什么的)
2.创建beans.xml
2.1使用DBCP创建dataSource(和集成jdbc一样)
<bean id="dataSource" class="org.apache.common.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value=""/>
<property name="url" value=""/>
<property name="username" value=""/>
<property name="password" value=""/>
<!--配置连接池的初始值-->
<property name="initialSize" value="1"/>
<!--配置连接池的最大值-->
<property name="maxActive" value="100"/>
<!--最大空闲时,当经过一个高峰之后,连接池可以将一些不用的连接释放,一直减少到maxIdle为止-->
<property name="maxIdle" value="20"/>
<!--最小空闲时,当连接少于minIdle时,会自动申请一些连接-->
<property name="minIdle" value="1"/>
<property name="maxWait" value="1000"/>
</bean>
2.2创建Hibernate的SessionFactory,我们不需要Hibernate的配置文件了
<bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!--注入数据源-->
<property name="dataSource" ref="dataSource"/>
<!--设置Spring去哪个包中查找相应的实体类-->
<property name="packageToScan">
<value>org.zttc.itat.model</value>
</property>
<!--此处也可以用如下的方式,只不过这里是需要些一个xml-->
<property name="mappingResource">
<list>
<value>product.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.HSQLDialect
</value>
<!--此处也可以用另外一种方式-->
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbmddl.auto">update</prop>
<prop key="hibernate.format_sql">false</prop>
</props>
</property>
</bean>
<!--如果使用的是Annotation,不能使用LocalSessionFactoryBean,而应该使用org.springframework.orm.hibernate3.annotaition.AnnotationSessionFactoryBean,LocalSessionFactoryBean找不到setPackageToScan()方法-->
<!--<bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">-->
<bean id="SessionFactory" class="org.springframework.orm.hibernate3.AnnotationSessionFactoryBean">
<!--注入数据源--> <property name="dataSource" ref="dataSource"/>
<!--设置Spring去哪个包中查找相应的实体类-->
<property name="packageToScan"> <value>org.zttc.itat.model</value> </property> <!--此处也可以用如下的方式,只不过这里是需要些一个xml-->
<property name="mappingResource">
<list>
<value>product.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties"> <value>
hibernate.dialect=org.hibernate.dialect.HSQLDialect
</value>
<!--此处也可以用另外一种方式-->
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbmddl.auto">update</prop> <prop key="hibernate.format_sql">false</prop> </props>
</property>
</bean>
3.为实体类添加Hibernate的Annotation或者hbm.xml文件
3.1在类上面添加@Entity @Table(name="")
3.2在主键上面添加@Id @GenerateValue
3.3多对一 @ManyToOne @JoinColumn(name="")
4.创建基于Hibernate的DAO
4.1在相应的DAO中注入相应的SessionFactory
@Resource(name=""),就可以把我们的sessionFactory注入进去。我们的SessionFactory,在前面已经用xml的方式在beans.xml中配置好了
不再使用factory.openSession()开启session(常规方法),而应该是使用factory.getCurrentSession来打开Session,这个Session就会被spring所管理,此时,开发人员不用进行事务控制,也不用关闭Session,全部由Spring容器来完成。
5.配置Spring的事务处理,只有配置了事务处理之后,Spring才能有效的管理事务
dom4j-1.6.1.jar:解析xml的包
整合Hibernate3.x的更多相关文章
- Spring3 整合Hibernate3.5 动态切换SessionFactory (切换数据库方言)
一.缘由 上一篇文章Spring3.3 整合 Hibernate3.MyBatis3.2 配置多数据源/动态切换数据源 方法介绍到了怎么样在Sping.MyBatis.Hibernate整合的应用中动 ...
- Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法
一.开篇 这里整合分别采用了Hibernate和MyBatis两大持久层框架,Hibernate主要完成增删改功能和一些单一的对象查询功能,MyBatis主要负责查询功能.所以在出来数据库方言的时候基 ...
- spring2.5整合hibernate3.0整合Struts
首先:这是spring framework+hibernate+struts集成,spring主要用于aop和ioc,hibernate主要是用于持久层,struts主要是用于mvc. 同时关于spr ...
- Spring4.0整合Hibernate3 .6
转载自:http://greatwqs.iteye.com/blog/1044271 6.5 Spring整合Hibernate 时至今日,可能极少有J2EE应用会直接以JDBC方式进行持久层访问. ...
- Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源方法
一.开篇 这里整合分别采用了Hibernate和MyBatis两大持久层框架,Hibernate主要完成增删改功能和一些单一的对象查询功能,MyBatis主要负责查询功能.所以在出来数据库方言的时候基 ...
- 简易的CRM系统案例之Struts2&Spring整合+Hibernate3+JSP+MySQL版本
主要对上一篇Struts2&Spring整合的改造 简易的CRM系统案例之Struts2+Hibernate3+JSP+MySQL版本 src/bean.xml <beans xmlns ...
- Struts2整合Hibernate3实现用户登录功能
所用技术:struts2 ,hibernate,jsp,mysql 本DEMO仅仅实现用户登录功能,采用MVC思想,自己也觉得相对是比较简单,比较容易理解数据流向的一个例子,通过整合这个过程,能够清晰 ...
- spring2.5整合hibernate3.0
第一步:配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http ...
- Spring3 整合MyBatis3 配置多数据源 动态选择SqlSessionFactory
一.摘要 上两篇文章分别介绍了Spring3.3 整合 Hibernate3.MyBatis3.2 配置多数据源/动态切换数据源 方法 和 Spring3 整合Hibernate3.5 动态切换Ses ...
随机推荐
- ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined)
靠这把上了蓝 A. Palindromic Supersequence time limit per test 2 seconds memory limit per test 256 megabyte ...
- SpringMVC对于跨域访问的支持
原文地址:http://docs.spring.io/spring/docs/5.0.0.RC2/spring-framework-reference/web.html#mvc-introductio ...
- iOS粒子效果
网址链接:http://www.cocoachina.com/bbs/read.php?tid-103257.html http://code.cocoachina.com/view/125060 粒 ...
- DB2 Catalog浅析&学习笔记
原文地址:http://king123654789.iteye.com/blog/1296492 Catalog 是远程连接部署在服务器端的DB2数据库的命令 [本文涉及到的命令] >db2 c ...
- Java面试题之红黑树原理
红黑树原理: 每个节点都只能是红色或黑色的: 根节点是黑色的: 每个叶节点(空节点)是黑色的: 如果一个节点是红色的,那么他的子节点都是黑色的: 从任意一个节点到其每个子节点的路径都有相同数目的黑色节 ...
- TypeToken获取运行时泛型类型
最近正好使用到了Guava的TypeToken来获取泛型的类型信息 比如,泛型父类需要获取其子类定义的泛型类型时: public abstract class GenericClazz<V> ...
- spring-boot项目热部署以及spring-devtools导致同类不能转换
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- scrapy之小试身手
要爬取的网址是:http://quotes.toscrape.com/ 磕磕绊绊的写完了 spiders import scrapy from kkk.items import * class Quo ...
- 创建 Image
本节演示如何通过 Web GUI 和 CLI 两种方法创建 Image. OpenStack 为终端用户提供了 Web UI(Horizon)和命令行 CLI 两种交换界面.两种方式我们都要会用. 可 ...
- 【CF314C】Sereja and Subsequences(DP,树状数组)
题意:给定一个N个数的数列,求所有不同不下降子序列的乘积之和,其中不同指的是组成它的数字和长度不完全相同 n (1 ≤ n ≤ 10^5) a[i]<=10^6 思路:考虑DP.设DP[a[i] ...