spring整合hibernate,主要达到的目的有以下几点

1、使用Spring的IOC功能管理SessionFactory对象 --LocalSessionFactoryBean

对于SessionFactory对象的管理可以分为两类,一类是通过spring直接管理,另一类是通过hibernate自身的配置文件hibernate.cfg.xml进行配置,通过spring配置文件引入到spring框架中。

2、使用Spring管理Session对象 -- HibernateTemplate

对于HibernateTemplate的配置也有两种情况,一种是在spring中显示的配置hibernate操作模板类HibernateTemplate,程序中声明HibernateTemplate属性,并在spring中注入该属性。

 private HibernateTemplate hibernateTemplate;public HibernateTemplate getHibernateTemplate() {return hibernateTemplate;}public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {this.hibernateTemplate = hibernateTemplate;}
 <!-- 配置hibernate操作模板类 --> <bean name="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory"></property></bean> 
<!-- 向dao中注入hibernateTemplate模板对象 -->
<bean name="hibernateDao" class="com.hibernate.dao.impl.HibernateDaoImpl"><property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>

另一种情况是不在spring配置文件中声明 HibernateTemplate,程序中不必声明HibernateTemplate,而是继承HibernateDaoSupport类。采用这种方法之后,在使用时只需向程序中注入SessionFactory即可。

java类如下,继承HibernateDaoSupport类,程序中不必声明HibernateTemplate,也不必声明SessionFactory,spring配置文件中直接向该类中注入SessionFactory。(被继承的HibernateDaoSupport中声明了SessionFactory属性)

public class ListMPByGroupIdDao extends HibernateDaoSupport implements IListMPByGroupIdDao {...}

配置文件如下

<!-- 向dao中注入SessionFactory -->
<bean id="listMPByGroupIdDao" class="com.ai.rms.dao.impl.ListMPByGroupIdDao"><property name="sessionFactory" ref="sessionFactory"></property>
</bean>

3、使用Spring的功能实现声明式的事务管理

接下来按照对SessionFactory对象的两种管理方法列出详细配置,首先是通过spring管理SessionFactory

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"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.5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd"><!-- 配置hibernate操作模板类 -->    <bean name="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory"></property></bean> <!-- 配置sessionFactory对象 --><bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="MydataSource"></property><property name="mappingLocations"><list><value>com/hibernate/bean/User.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop><prop key="hibernate.show_sql">true</prop></props></property></bean> <!-- 配置数据源 --><bean    class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"name="MydataSource"><property name="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property><property name="url"><value>jdbc:oracle:thin:@localhost:1521:xe</value></property><property name="username"><value>aduser</value></property><property name="password"><value>123456</value></property></bean><!-- 向dao中注入hibernateTemplate模板对象 --><bean name="hibernateDao" class="com.hibernate.dao.impl.HibernateDaoImpl"><property name="hibernateTemplate" ref="hibernateTemplate"></property></bean><!-- 构建service对象 -->    <bean name="service" class="com.hibernate.service.impl.UserServiceImpl"><property name="dao" ref="hibernateDao"></property></bean><!-- 配置事务管理器 --><bean name="tranManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 配置事务拦截器 --><bean name="tranInterceptor" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"><property name="transactionManager" ref="tranManager"></property><property name="transactionAttributes"><props><!-- 事务传播属性,事务隔离级别, 方法属性值,控制提交回滚操作 (+Exception强制提交,-Exception回滚)--><!-- <prop key="*">PROPAGATION_REQUIRED,,,</prop> --><prop key="*">PROPAGATION_REQUIRED</prop></props></property><property name="target" ref="service"></property></bean></beans>

使用hibernate自身的配置文件 hibernate.cfg.xml配置SessionFactory时,在spring配置文件中不必声明数据源datasource  配置如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"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.5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd"><!-- 配置hibernate操作模板类 -->    <bean name="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory"></property></bean> <!-- 配置sessionFactory对象 --><bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocations"><list><value>classpath:hibernate.cfg.xml</value></list></property></bean><!-- 向dao中注入hibernateTemplate模板对象 --><bean name="hibernateDao" class="com.hibernate.dao.impl.HibernateDaoImpl"><property name="hibernateTemplate" ref="hibernateTemplate"></property></bean><!-- 构建service对象 --> <bean name="service" class="com.hibernate.service.impl.UserServiceImpl"><property name="dao" ref="hibernateDao"></property></bean><!-- 配置事务管理器 --><bean name="tranManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 配置事务拦截器 --><bean name="tranInterceptor" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"><property name="transactionManager" ref="tranManager"></property><property name="transactionAttributes"><props><!-- 事务传播属性,事务隔离级别, 方法属性值,控制提交回滚操作 (+Exception强制提交,-Exception回滚)--><!-- <prop key="*">PROPAGATION_REQUIRED,,,</prop> --><prop key="*">PROPAGATION_REQUIRED</prop></props></property><property name="target" ref="service"></property></bean>
</beans>

hibernate.cfg.xml的配置如下

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>
<session-factory><property name="show_sql">true</property><property name="myeclipse.connection.profile">runnew</property><property name="connection.url">jdbc:oracle:thin:@localhost:1521:XE</property><property name="connection.username">aduser</property><property name="connection.password">123456</property><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><property name="dialect">org.hibernate.dialect.Oracle9Dialect</property><mapping resource="com/hibernate/bean/User.hbm.xml" />
</session-factory>
</hibernate-configuration>

spring整合hibernate步骤及配置文件相关推荐

  1. Spring整合Hibernate步骤以及遇到的问题

    spring整合Hibernate步骤以及遇到的问题 文章目录 spring整合Hibernate步骤以及遇到的问题 步骤: 创建实体类: 编写Dao层: 编写server层: spring配置文件 ...

  2. spring整合hibernate事务编程中错误分析

    2019独角兽企业重金招聘Python工程师标准>>> 在spring整合hibernate过程中,我们的配置文件: <?xml version="1.0" ...

  3. 【Spring】Spring系列6之Spring整合Hibernate

    6.Spring整合Hibernate 6.1.准备工作 6.2.示例 com.xcloud.entities.book com.xcloud.dao.book com.xcloud.service. ...

  4. 解决在Spring整合Hibernate配置tx事务管理器出现错误的问题

    解决在Spring整合Hibernate配置tx事务管理器出现错误的问题 参考文章: (1)解决在Spring整合Hibernate配置tx事务管理器出现错误的问题 (2)https://www.cn ...

  5. Spring整合Hibernate的步骤

    为什么要整合Hibernate? 1.使用Spring的IOC功能管理SessionFactory对象  LocalSessionFactoryBean 2.使用Spring管理Session对象   ...

  6. Spring整合Hibernate图文步骤

    工具:myeclipse9.0 Spring版本:2.5.6 Hibernate版本:3 昨天花了一下午时间把Spring和Hibernate整合到了一起,今天做一个笔记. 首先建立java Proj ...

  7. spring整合hibernate(注解、xml)applicationContext.xml配置

    每次ssh框架整合都很麻烦,今天有空余时间总结下(主要总结spring+hibernate): 1.注解方式整合: applicationContext.xml配置文件: <?xml versi ...

  8. Spring整合Hibernate和Struts2 (SSH)

    1.首先从整合Hibernate开始 2.导入包,这里就把所有的报导进来,包括struts2的,一起导进来 一共29个包 3.编写实体类 package star.july.entity; publi ...

  9. Spring整合Hibernate。。。。

    环境搭建,在eclipse中导入spring和hibernate框架的插件,和导入所有使用到的架包 首先,hibernate的创建: 建立两个封装类,其中封装了数据库中表的属性,这儿只写属性,gett ...

最新文章

  1. element怎么设置复选框属性_【JavaScript 教程】DOM——属性的操作
  2. 来学习开发一个网页版马里奥小游戏吧
  3. poj 1182 食物链(高级的带权并查集)
  4. android权限机制6.0,Android6.0权限机制(二):封装
  5. 了解SQL Server数据库恢复模型
  6. TABLE与DIV的取舍
  7. 职业学校计算机课评课,中职计算机评课稿
  8. 免费且好用的UML工具推荐
  9. mysql grant什么意思_MySQL grant 语法的详细解析
  10. 微信java精简版低内存_微信精简版低内存apk-微信精简版2019下载v7.0.6 安卓版-腾牛安卓网...
  11. 资深项目经理2019年总结
  12. 哪款蓝牙耳机品质好?音质好的四款蓝牙耳机测评
  13. OFFICE中的VBA库的定义
  14. edi mysql_EDI:_数据库基础(mysql)答案_学小易找答案
  15. NCBI数据下载-sra
  16. 20171107--SQL变量,运算符,存储过程
  17. 机械臂示教轨迹参数化方法 DMP, Dynamic Movement Primitive (一)
  18. c语言 for each循环,C#中foreach循环对比for循环的优势和劣势
  19. M8 解决 无法用blt 半透明和AlphaBlt实现关键色的问题。
  20. 20_django项目的部署和总结

热门文章

  1. 7.springcloudAlibaba-网关gateway
  2. 使用Python制作二维码生成软件
  3. MySQL数据库学习(二)
  4. 【渗透学习之基础篇】002网络安全法
  5. 幕客学习CSS3全面基础知识点
  6. Python 网络爬虫实战:爬取《去哪儿》网数千篇旅游攻略数据,再也不愁旅游去哪儿玩了
  7. NoSQL 数据库有哪些典型应用?
  8. 云端身份证识别OCr
  9. Python编程——多进程与多线程编程(附实例)
  10. 比尔盖茨:如果再上大学,我会选这三个专业!