Spring整合hibernate需要整合些什么?

    1. 由IOC容器来生成hibernate的sessionFactory.
    2. 让hibernate使用spring的声明式事务

整合步骤:

  • 加入hibernate:

    1.导jar包

    2.配置hibernate的配置文件,hibernate.cfg.xml.(其实可以省略这个配置文件,但还是加上比较舒服):

  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  5.  
  6. <hibernate-configuration>
  7. <session-factory>
  8. <!-- 配置hibernate的基本属性 -->
  9. <!-- 配置数据源 ,因为需要把数据源配置到IOC容器中,所以这里不需要再配置-->
  10. <!-- 配置数据库方言 -->
  11. <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
  12. <!-- 显示并格式化sql语句 -->
  13. <property name="show_sql">true</property>
  14. <property name="format_sql">true</property>
  15. <!-- 自动生成数据库表结构 -->
  16. <property name="hbm2ddl.auto">update</property>
  17. <!-- 使用getCurrentSession方式打开会话 -->
  18. <property name="hibernate.current_session_context_class">thread</property>
  19.  
  20. <!-- 关联的*.hbm.xml也在容器配置sessionFactory实例时在进行配置,这里也不再配置 -->
  21. </session-factory>
  22. </hibernate-configuration>

    3.编写持久化类以及对应的hbm.xml.

  • 加入Spring

    1.导入jar包.

    2.配置spring配置文件(重点,详见注释):

      beans.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
  4. xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
  5. xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
  6. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
  8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">
  9. <!-- 导入资源文件 -->
  10. <context:property-placeholder location="db.properties"
  11. ignore-resource-not-found="false" />
  12. <!-- 配置c3p0连接池 -->
  13. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  14. <property name="user" value="${jdbc.user}"></property>
  15. <property name="password" value="${jdbc.password}"></property>
  16. <property name="driverClass" value="${jdbc.driverClass}"></property>
  17. <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
  18. <property name="initialPoolSize" value="${jdbc.initialPoolSize}"></property>
  19. <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
  20. </bean>
  21.  
  22. <!--配置hibernate的SessionFactory实例,通过Spring提供的LocalSessionFactorybean进行配置 -->
  23. <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  24. <!-- 配置数据源属性 -->
  25. <property name="dataSource" ref="dataSource"></property>
  26. <!-- 配置hibernate.cfg.xml的位置及名称-->
  27. <property name="configLocation" value="hibernate.cfg.xml"></property>
  28. <!-- 配置hibernate映射文件的位置及名称,可以使用通配符-->
  29. <property name="mappingLocations" value="com/wang/entity/*.hbm.xml"></property>
  30. </bean>
  31. <!-- 配置Spring的声明式事务 -->
  32. <!-- 1.配置事务管理器 -->
  33. <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  34. <property name="sessionFactory" ref="sessionFactory"></property>
  35. </bean>
  36. <!-- 2.配置事务属性,需要事务管理器 -->
  37. <tx:advice id="txAdvice" transaction-manager="transactionManager">
  38. <tx:attributes>
  39. <tx:method name="*"/>
  40. <tx:method name="get*" read-only="true"/>
  41. </tx:attributes>
  42. </tx:advice>
  43. <!-- 3.配置事务切点,并把切点和事务属性关联起来 -->
  44. <aop:config>
  45. <aop:pointcut expression="execution(* com.wang.service.*.*(..))" id="pointcut"/>
  46. <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
  47. </aop:config>
  48. </beans>

到此,配置工作就完成了,接下来可以测试一下代码,看看自动生成的数据库表.

  如果你选择不使用hibernate.cfg.xml,那么可以在上面的beans.xml中,删掉<property name="configLocation" value="hibernate.cfg.xml"></property>,同时添加以下代码:

  1. <property name="hibernateProperties">
  2. <props>
  3. <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
  4. <prop key="hibernate.show_sql">true</prop>
  5. <prop key="hibernate.format_sql">true</prop>
  6. <prop key="hibernate.hbm2ddl.auto">update</prop>
  7. </props>
  8. </property>

spring整合hibernate的详细步骤的更多相关文章

  1. java Spring整合Freemarker的详细步骤

    java Spring整合Freemarker的详细步骤 作者: 字体:[增加 减小] 类型:转载 时间:2013-11-14我要评论 本文对Spring整合Freemarker步骤做了详细的说明,按 ...

  2. Spring整合Hibernate详细步骤

    阅读目录 一.概述 二.整合步骤 回到顶部 一.概述 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让Hibernate使 ...

  3. 【SSH】spring 整合 hibernate

    spring-hibernate-1.2.9.jar applicationContext.xml <bean id="sessionFactory" class=" ...

  4. spring整合hibernate

    spring整合hibernate包括三部分:hibernate的配置.hibernate核心对象交给spring管理.事务由AOP控制 好处: 由java代码进行配置,摆脱硬编码,连接数据库等信息更 ...

  5. spring 整合hibernate

    1. Spring 整合 Hibernate 整合什么 ? 1). 有 IOC 容器来管理 Hibernate 的 SessionFactory2). 让 Hibernate 使用上 Spring 的 ...

  6. Spring 整合 Hibernate

    Spring 整合 Hibernate •Spring 支持大多数流行的 ORM 框架, 包括 Hibernate JDO, TopLink, Ibatis 和 JPA. •Spring 对这些 OR ...

  7. 使用Spring整合Hibernate,并实现对数据表的增、删、改、查的功能

    1.1 问题 使用Spring整合Hibernate,并实现资费表的增.删.改.查. 1.2 方案 Spring整合Hibernate的步骤: 1.3 步骤 实现此案例需要按照如下步骤进行. 采用的环 ...

  8. Spring整合Hibernate(转)

    概述 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让Hibernate使用上Spring的声明式事务 整合步骤 整合前准 ...

  9. Spring学习笔记六:Spring整合Hibernate

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6785323.html  前言:整合概述 Spring整合Hibernate主要是把Hibernate中常用的S ...

随机推荐

  1. [LintCode] Best Time to Buy and Sell Stock 买卖股票的最佳时间

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  2. Java学习【1】

    一.Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称. 2005年6月,SUN公司公开Java SE 6.Java ...

  3. RunTimeException包括:

    大约有如下几种: NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常 IllegalArgumentException- 传递非法 ...

  4. shell去除换行和空格2

    #!/bin/bash if [ -f str.txt ] ## 如果str.txt存在,则返回true then strval=$(cat str.txt|awk '{printf "%s ...

  5. 移动端图片上传base64编码

    $base64 = "/9j/4AAQSkZJRgABAQEAkACQAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAA ...

  6. SDOI 2016 征途 决策单调性

    题目大意:有一个数列,将其分成m段,求最小方差 先弄出n^3的dp,打出决策点,然后发现决策点是单调递增的,决策单调性搞一搞就可以了 #include<bits/stdc++.h> #de ...

  7. HDFS Client 设计实现解析

    前面对 HDFS NameNode 和 DataNode 的架构设计实现要点做了介绍,本文对 HDFS 最后一个主要构成组件 Client 做进一步解析. 流式读取 HDFS Client 为客户端应 ...

  8. 浅析 Linux 初始化 init 系统

    近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版采纳了 ...

  9. 旺信UWP正式版发布

    下载链接:https://www.microsoft.com/store/apps/9nblggh5lq9x 各位园主好,在旺信Beta版发布后近两个月,我们的新版本1.1.0终于上线了,并且更名为旺 ...

  10. 使用Unity3D的设计思想实现一个简单的C#赛车游戏场景

    最近看了看一个C#游戏开发的公开课,在该公开课中使用面向对象思想与Unity3D游戏开发思想结合的方式,对一个简单的赛车游戏场景进行了实现.原本在C#中很方便地就可以完成的一个小场景,使用Unity3 ...