Spring4整合Hibernate4详细示例

spring3、 hibernate4 配置声明式事务管理(annotation方式) 立即下载

原文:http://blog.youkuaiyun.com/kris234seth/article/details/49872867


1. Spring整合Hibernate,主要是解决什么问题?

       a、让Spring提供的IOC容器来管理Hibernate的SessionFactory

       b、让Hibernate使用Spring提供的声明式事物

2. 整合步骤:

        新建一个Java工程,并新建用来保存依赖jar包的lib目录

      ①.  加入Hibernate支持:

           1. 加入Hibernate的required的jar包:

     antlr-2.7.7.jar
    dom4j-1.6.1.jar
    hibernate-commons-annotations-4.0.2.Final.jar
    hibernate-core-4.2.5.Final.jar
    hibernate-jpa-2.0-api-1.0.1.Final.jar
    javassist-3.15.0-GA.jar
    jboss-logging-3.1.0.GA.jar
    jboss-transaction-api_1.1_spec-1.0.1.Final.jar

2.加入MySQL与C3p0连接池支持:

    c3p0-0.9.2.1.jar
    mchange-commons-java-0.2.3.4.jar
    mysql-connector-java-5.1.7-bin.jar

注意:jar包加入之后,需要全部选中,右键-》BuildPath,将其导入

3.添加Hibernate的配置文件(hibernate.cfg.xml):

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5. <hibernate-configuration>  
  6.     <session-factory>  
  7.       <!-- 配置hibernate基本信息 -->  
  8.       <!-- 1.数据源配置在IOC容器中,此处不需要额外配置 -->  
  9.       <!-- 2.关联的.hbm.xml文件也在IOC容器配置SessionFactory时配置 -->  
  10.       <!-- 3.此处配置hibernate的基本信息:数据库方言、SQL显示及格式化,及生成数据表的策略,二级缓存等 -->  
  11.       <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>  
  12.         
  13.       <property name="hibernate.show_sql">true</property>  
  14.       <property name="hibernate.format_sql">true</property>  
  15.         
  16.       <property name="hibernate.hbm2ddl.auto">update</property>  
  17.         
  18.     </session-factory>  
  19. </hibernate-configuration>  

4. 创建测试使用的持久化类以及生成Hibernate的映射文件

 本例所用到的持久化类以其映射文件如下:

[java]  view plain  copy
 print ?
  1. public class Book {  
  2.      
  3.     private int id;  
  4.     private String bookName;  
  5.     private String isbn;  
  6.     private float price;  
  7.     private int stock;  
  8.   
  9.     public int getId() {  
  10.         return id;  
  11.     }  
  12.   
  13.     public void setId(int id) {  
  14.         this.id = id;  
  15.     }  
  16.   
  17.     public String getBookName() {  
  18.         return bookName;  
  19.     }  
  20.   
  21.     public void setBookName(String bookName) {  
  22.         this.bookName = bookName;  
  23.     }  
  24.   
  25.     public String getIsbn() {  
  26.         return isbn;  
  27.     }  
  28.   
  29.     public void setIsbn(String isbn) {  
  30.         this.isbn = isbn;  
  31.     }  
  32.   
  33.     public float getPrice() {  
  34.         return price;  
  35.     }  
  36.   
  37.     public void setPrice(float price) {  
  38.         this.price = price;  
  39.     }  
  40.   
  41.     public int getStock() {  
  42.         return stock;  
  43.     }  
  44.   
  45.     public void setStock(int stock) {  
  46.         this.stock = stock;  
  47.     }  
  48.       
  49. }  
[java]  view plain  copy
 print ?
  1. public class Account {  
  2.      
  3.     private int id;  
  4.     private String username;  
  5.     private float balance;  
  6.       
  7.     public int getId() {  
  8.         return id;  
  9.     }  
  10.   
  11.     public void setId(int id) {  
  12.         this.id = id;  
  13.     }  
  14.   
  15.     public String getUsername() {  
  16.         return username;  
  17.     }  
  18.   
  19.     public void setUsername(String username) {  
  20.         this.username = username;  
  21.     }  
  22.   
  23.     public float getBalance() {  
  24.         return balance;  
  25.     }  
  26.   
  27.     public void setBalance(float balance) {  
  28.         this.balance = balance;  
  29.     }  
  30.           
  31. }  
[html]  view plain  copy
 print ?
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  4. <!-- Generated 2015-11-15 21:48:02 by Hibernate Tools 3.4.0.CR1 -->  
  5. <hibernate-mapping>  
  6.     <class name="com.elgin.spring.hibernate.entity.Book" table="SH_BOOK">  
  7.         <id name="id" type="int">  
  8.             <column name="ID" />  
  9.             <generator class="native" />  
  10.         </id>  
  11.           
  12.         <property name="bookName" type="java.lang.String">  
  13.             <column name="BOOKNAME" />  
  14.         </property>  
  15.           
  16.         <property name="isbn" type="java.lang.String">  
  17.             <column name="ISBN" />  
  18.         </property>  
  19.           
  20.         <property name="price" type="float">  
  21.             <column name="PRICE" />  
  22.         </property>  
  23.           
  24.         <property name="stock" type="int">  
  25.             <column name="STOCK" />  
  26.         </property>  
  27.           
  28.     </class>  
  29. </hibernate-mapping>  
[html]  view plain  copy
 print ?
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  4. <!-- Generated 2015-11-15 21:48:02 by Hibernate Tools 3.4.0.CR1 -->  
  5. <hibernate-mapping>  
  6.     <class name="com.elgin.spring.hibernate.entity.Account" table="SH_ACCOUNT">  
  7.         <id name="id" type="int">  
  8.             <column name="ID" />  
  9.             <generator class="native" />  
  10.         </id>  
  11.           
  12.         <property name="username" type="java.lang.String">  
  13.             <column name="USERNAME" />  
  14.         </property>  
  15.           
  16.         <property name="balance" type="float">  
  17.             <column name="BALANCE" />  
  18.         </property>  
  19.           
  20.     </class>  
  21. </hibernate-mapping>  

      ②. 加入Spring支持:               

       1. 加入Spring的required的jar包:

               com.springsource.net.sf.cglib-2.2.0.jar
                com.springsource.org.aopalliance-1.0.0.jar
              com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
             commons-logging-1.1.3.jar
             spring-aop-4.1.0.RELEASE.jar
             spring-aspects-4.1.0.RELEASE.jar
             spring-beans-4.1.0.RELEASE.jar
             spring-context-4.1.0.RELEASE.jar
            spring-core-4.1.0.RELEASE.jar
            spring-expression-4.1.0.RELEASE.jar
            spring-jdbc-4.1.0.RELEASE.jar
            spring-orm-4.1.0.RELEASE.jar
            spring-test-4.1.0.RELEASE.jar
            spring-tx-4.1.0.RELEASE.jar
            spring-web-4.1.0.RELEASE.jar
           spring-webmvc-4.1.0.RELEASE.jar

          同样需要BuildPath!

     2.加入Spring的配置文件:applicationContext.xml

            applicationContext.xml 配置内容:          

[html]  view plain  copy
 print ?
  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"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:tx="http://www.springframework.org/schema/tx"  
  6.     xmlns:aop="http://www.springframework.org/schema/aop"  
  7.     xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd  
  8.         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
  9.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd  
  10.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">  
  11.      
  12.    <!-- 配置注解自动扫描的包 -->  
  13.    <context:component-scan base-package="com.elgin.spring.hibernate"></context:component-scan>  
  14.      
  15.      
  16.    <!-- 配置数据源 -->  
  17.    <!-- 导入资源文件 -->  
  18.    <context:property-placeholder location="classpath:db.properties"/>  
  19.      
  20.    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
  21.        <property name="user" value="${jdbc.user}"></property>  
  22.        <property name="password" value="${jdbc.password}"></property>  
  23.        <property name="driverClass" value="${jdbc.driverClass}"></property>  
  24.        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>  
  25.          
  26.        <property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>  
  27.        <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>  
  28.    </bean>  
  29.      
  30.    <!-- 配置Hibernate的SessionFactory,通过spring提供的 LocalSessionFactoryBean配置-->  
  31.    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  
  32.        <!-- 配置依赖的数据源属性 -->  
  33.        <property name="dataSource" ref="dataSource"></property>  
  34.        <!-- hibernate 配置文件的路径 -->  
  35.        <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>  
  36.        <!-- 配置hibernate映射文件的路径,可以使用通配符 -->  
  37.        <property name="mappingLocations" value="classpath:com/elgin/spring/hibernate/entity/*.hbm.xml"></property>  
  38.    </bean>  
  39.      
  40.    <!-- 配置 Spring 的声明式事物 -->  
  41.    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">  
  42.        <property name="sessionFactory" ref="sessionFactory"></property>  
  43.    </bean>  
  44.      
  45.    <!-- 配置事物属性 ,需要事物管理器-->  
  46.    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
  47.        <tx:attributes>  
  48.           <tx:method name="get*" read-only="true"/>  
  49.           <tx:method name="purchase" propagation="REQUIRES_NEW"/>  
  50.           <tx:method name="*"/>  
  51.        </tx:attributes>  
  52.    </tx:advice>  
  53.      
  54.    <!-- 配置事物切点,并把事物属性和切点关联起来 -->  
  55.    <aop:config>  
  56.       <aop:pointcut expression="execution(* com.elgin.spring.hibernate.service.*.*(..))" id="txPointcut"/>  
  57.       <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>  
  58.    </aop:config>  
  59.      
  60. </beans>  
依赖的数据库配置文件db.properties:

[html]  view plain  copy
 print ?
  1. jdbc.user=root  
  2. jdbc.password=root123  
  3. jdbc.driverClass=com.mysql.jdbc.Driver  
  4. jdbc.jdbcUrl=jdbc:mysql://localhost:3306/spring_hibernate  
  5. jdbc.initPoolSize=5  
  6. jdbc.maxPoolSize=10  
至此,Spring的配置、Hibernate的配置、以及二者整合的相关配置都配置完毕。下面通过代码测试。

3.整合测试:

工程目录:


新建上述各个目录:

1. 在dao下面新建接口:

[java]  view plain  copy
 print ?
  1. public interface BookShopDao {  
  2.       
  3.     /** 
  4.      * 根据书号获取书的单价 
  5.      * @param isbn 
  6.      * @return 
  7.      */  
  8.     public float  findPriceByIsbn(String isbn);  
  9.       
  10.     /** 
  11.      * 更新书的库存,使书号对应的书本减少n本 
  12.      * @param isbn 
  13.      * @param n 
  14.      */  
  15.     public void updateBookStock(String isbn,int n);  
  16.       
  17.     /** 
  18.      * 更新账户余额,使当前账户金额减少 price*n 
  19.      * @param username 
  20.      * @param price 
  21.      * @param n 
  22.      * @throws BalanceNotEnough  
  23.      */  
  24.     public void updateAccount(String username,float price,int n);  
  25. }  
对应的在impl下完成上述接口的实现类(注解@Repository,用来标注持久层,同时表示此组件交给spring的IOC容器管理)

在使用spring的相关注解时,需要在spring的配置文件中开启注解自动扫描:

[html]  view plain  copy
 print ?
  1. <!-- 配置注解自动扫描的包 -->  
  2.    <context:component-scan base-package="com.elgin.spring.hibernate"/>  

[java]  view plain  copy
 print ?
  1. import org.hibernate.Query;  
  2. import org.hibernate.Session;  
  3. import org.hibernate.SessionFactory;  
  4. import org.springframework.beans.factory.annotation.Autowired;  
  5. import org.springframework.stereotype.Repository;  
  6.   
  7. import com.elgin.spring.hibernate.dao.BookShopDao;  
  8. import com.elgin.spring.hibernate.exception.BalanceNotEnough;  
  9. import com.elgin.spring.hibernate.exception.BookStockNotEnoughException;  
  10.   
  11. @Repository  
  12. public class BookShopDaoImpl implements BookShopDao {  
  13.       
  14.     @Autowired  
  15.     private SessionFactory sessionfactory;  
  16.       
  17.     /** 
  18.      * 获取与当前线程绑定的session 
  19.      * @return 
  20.      */  
  21.     private Session getSession(){  
  22.         return sessionfactory.getCurrentSession();    
  23.     }  
  24.       
  25.     @Override  
  26.     public float findPriceByIsbn(String isbn) {  
  27.         String hql="select b.price from Book b where b.isbn=?";  
  28.         float price=(float) getSession().createQuery(hql).setString(0, isbn).uniqueResult();  
  29.         return price;  
  30.     }  
  31.   
  32.     @Override  
  33.     public void updateBookStock(String isbn, int n) {  
  34.         //验证书的库存是否充足  
  35.         String hq="Select b.stock from Book b where b.isbn=?";  
  36.         int stock=(int) getSession().createQuery(hq).setString(0, isbn).uniqueResult();  
  37.         if(stock < n){  
  38.              throw new BookStockNotEnoughException("库存不足");  
  39.         }     
  40.         String hql="update Book b set b.stock=b.stock-? where b.isbn=?";  
  41.         Query query=getSession().createQuery(hql).setInteger(0, n).setString(1, isbn);  
  42.         query.executeUpdate();        
  43.     }  
  44.   
  45.     @Override  
  46.     public void updateAccount(String username, float price, int n) {  
  47.         //验证余额是否足够  
  48.         String hql="select a.balance from Account a where a.username=?";  
  49.         float balance=(float) getSession().createQuery(hql).setString(0, username).uniqueResult();  
  50.         if(balance < n*price){  
  51.             throw new BalanceNotEnough("余额不足");  
  52.         }  
  53.         String hql1="update Account a set a.balance=a.balance-? where a.username=?";  
  54.         getSession().createQuery(hql1).setFloat(0, n*price).setString(1, username).executeUpdate();  
  55.     }  
  56.   
  57. }  
实现类中用到的2个异常类:

[java]  view plain  copy
 print ?
  1. public class BalanceNotEnough extends RuntimeException {  
  2.   
  3.     /** 
  4.      *  
  5.      */  
  6.     private static final long serialVersionUID = 1L;  
  7.       
  8.     public BalanceNotEnough(String msg) {  
  9.         super(msg);  
  10.     }  
  11.   
  12. }  
[java]  view plain  copy
 print ?
  1. public class BookStockNotEnoughException extends RuntimeException {  
  2.   
  3.     /** 
  4.      *  
  5.      */  
  6.     private static final long serialVersionUID = 1L;  
  7.       
  8.     public BookStockNotEnoughException(String msg) {  
  9.         super(msg);  
  10.     }  
  11. }  
在service包下新建下面的接口:

[java]  view plain  copy
 print ?
  1. public interface BookShopService {  
  2.       
  3.     /** 用户购买n本书 
  4.      * @param username 
  5.      * @param isbn 
  6.      * @param n 
  7.      */  
  8.     public void purchase(String username,String isbn,int n);  
  9. }  
在service.impl下完成它的实现类(@Service 用来标注service层,表示此组件为service并交给Spring的IOC容器管理;@Autowired 自动注入 ,表示此对象由IOC容器负责初始化并注入):

[java]  view plain  copy
 print ?
  1. @Service  
  2. public class BookShopSeviceImpl implements BookShopService {  
  3.   
  4.     @Autowired  
  5.     private BookShopDao bookShopDao;  
  6.       
  7.     /** 
  8.      * Spring Hibernate的事物流程 
  9.      * 1、方法开始之前 
  10.      * ①. 获取session 
  11.      * ②. 把Session与当前线程绑定,这样就可以使用sessionFactory的getCurrentSession()方法来获取session了 
  12.      * ③. 开启事务 
  13.      *  
  14.      * 2、若方法正常结束,未出现异常,则 
  15.      * ①.提交事物 
  16.      * ②.把session与当前线程解除绑定 
  17.      * ③.关闭session 
  18.      *  
  19.      * 3、若方法执行出现异常,则 
  20.      * ①.回滚事务 
  21.      * ②.把session与当前线程解除绑定 
  22.      * ③.关闭session 
  23.      */  
  24.     @Override  
  25.     public void purchase(String username, String isbn, int n) {  
  26.         float price=bookShopDao.findPriceByIsbn(isbn);  
  27.         bookShopDao.updateBookStock(isbn, n);  
  28.         bookShopDao.updateAccount(username, price, n);  
  29.     }  
  30.   
  31. }  
编写单元测试类:

若想使用如下配置进行单元测试,必须要加入spring单元测试的jar包:spring-test-4.1.0.RELEASE.jar

[java]  view plain  copy
 print ?
  1. @RunWith(SpringJUnit4ClassRunner.class)  
  2. @ContextConfiguration("classpath:applicationContext.xml")  
  3. public class SpringHibernateTest {  
  4.      
  5.       
  6.      @Autowired  
  7.      private BookShopService bookShopService;  
  8.        
  9.      @Test  
  10.      public void testPurchaseBook(){  
  11.          bookShopService.purchase("aaa", "java-1122", 2);  
  12.      }  
  13.   
  14. }  
首先,注释掉测试方法中额外的代码,启动单元测试,让Hibernate生成用到的数据表:SH_BOOK 与SH_ACCOUNT

让后在2个表中各加入测试所需要的数据如下图:


运行上述单元测试方法,执行成功,查看数据库,book的库存STOCK变为43,account中的账户余额变为130.

再次运行,程序抛出异常:

com.elgin.spring.hibernate.exception.BalanceNotEnough: 余额不足

查看数据库发现:

book的库存STOCK仍旧为43,account中的账户余额仍旧为130.

这就是spring的事物的作用,程序出现异常,回滚事务,关闭session。

本次整合测试代码:

本次整合测试代码

ZYNQ:【1】深入理解PS端的TTC定时器(Part1:原理+官方案例讲解) 基于UG585详细讲解其中TTC的原理和使用案例。 阅读详情

相关推荐

避开生产计划大坑:不懂MPS和MRP的区别,你的SAP PP模块白学了

本文深入解析SAP PP模块中MPS(主生产计划)与MRP(物料需求计划)的核心区别,揭示如何通过正确配置避免生产计划中的常见陷阱。文章详细探讨了MPS的三大缓冲特性和动态平衡算法,帮助企业提升生产计划稳定性,优化资源配置,避免生产线波动。

weixin_29268267的博客 401

5 整合Hibernate4

本章将Hibernate整合进Spring框架中,并操作《4 使用Hibernate生成模型》中的用户表ilv_user对应的模型类IlvUser。

河职院杨浪 2294

从零到一:OptimizePI Pre-layout PDN前仿真实战指南

本文详细介绍了如何使用OptimizePI进行电源完整性(PDN)前仿真,从软件安装配置到元器件建模、去耦电容配置及仿真参数设置,提供了实战技巧和常见问题排查指南。通过OptimizePI的Pre-layout仿真,工程师可以在PCB布局前优化电源分配网络,显著提升设计效率并降低成本。

weixin_28304023的博客 506

Hibernate框架的学习笔记

前言 学习java当然离不开对于java框架的学习了,其中在江湖很有名气的 ssh(spring+struts2+Hibernate),早想迫不及待的认识他们了,那 么,现在我也记录以下此次学习Hibernate的过程。 什么是Hibernate?  轻量级JavaEE应用的持久层框架,是一个完全的ORM框架。(说完这句话,肯定有很多人懵圈了,下面我来一个个解释)  持...

海棠花未眠的博客 361

2024高校网络安全管理运维赛题目--复现+题目+wp

官方writeup集思广益比较好的备份。

书山有路勤为径,学海无涯苦作舟 1321

GAMES101作业3-遇到的各种问题及解决方法

记录在做作业3时遇到的一些坑!以及最后的解决办法。

qq_41835314的博客 6816

hibernate之上下文初始化失败

Context initialization failed   上下文初始化失败 经过检查后发现报这个错的原因是hibernate.cfg.xml文件没有正确配置 头文件应该是 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configur

GET知识不迷路,点赞评论加关注! 2074

超级详细的GNS3最新版3-2.2.50安装配置教程,网工速度收藏!

你好,这里是网络技术联盟站,我是瑞哥。上周给大家分享了GNS3安装包。周末的时候有小伙伴在安装的时候遇到了一些问题,瑞哥周末特地从头安装了一下GNS3,今天给大家出个安装的教程,每一步的步骤我都截图了下来,希望对大家有所帮助!

网络技术联盟站 1108

SpringMVC4+Spring4+Hibernate4框架整合

最近项目需求,搭建了SSH框架,整合Spring4+SpringMVC+Hibernate4框架实例。 在网上看了很多文档,踩了很多雷,最终都不是自己想要的,经过一个星期努力,最终搭建成了,和自己预期的差不多还算满意。(我使用的JDK6,mysql5),下面来看代码和实例,希望能帮到大家。有需要demo的可以下载哦(最下面有连接)。 ssh框架所需的jar包: antlr-2.7.7.ja...

十里夜 4056

【踩坑记录】colmap中的相机位姿的坐标系定义及其可视化结果的隐含转换

1 坐标系定义及转换   首先介绍一下世界坐标系和相机坐标系之间的转换,它们之间是存在一个转换关系的。现假设空间中一点X,它在相机坐标系下的坐标是Xcamera,在世界坐标系下的坐标是Xworld。假设它通过R和t实现从相机坐标系到世界坐标系之间的转换: Xworld = RXcamera + t   那么,由上式,我们可以推得从世界坐标系向相机坐标系的转换关系(RT=R-1,所以通常直接使用RT即可): Xcamera = RTXworld - RTt   所以,两个坐标系之间的转换,需要看其具体

zeeq的博客 2万+

优化点列图(RMS半径)的操作数

优化点列图(RMS半径)的操作数

weixin_72050316的博客 2256

spring4+hibernate5整合

hibernate在实际应用中,很少单独使用的,基本都是和spring一起使用,这里介绍如何整合spring4+hibernate5。hibernate与spring整合,配置文件hibernate.cfg.xml就不需要了,配置信息直接提到spring配置文件里面,hibernate的sessionFactory交给spring容器管理,不再单独通过Configuration来构建。 整合首先...

feinifi的博客 3065

基于51单片机的电子记分牌的设计

基于51单片机的电子记分牌的设计 电子记分牌基于51单片机的电子记分牌的设计摘要1 引言2 总体设计方案2.1 设计思路(1)设计要求(2)设计思路(3)设计方案2.3综合设计方框图(1)硬件设计框图(2)软件设计3 设计原理分析3.1 电源、复位、下载电路的设计(见图1、2、3)3.2 时钟电路的设计3.3 矩阵键盘电路的设计3.4 数码管显示电路设计4程序代码 摘要 本设计为电子记分牌设计,是以STC89C52芯片为核心,辅以必要电路设计进行的。用4位LED七段数码管显示比赛两方的分数(每方分数用2位

行走的皮卡丘 2037

关于Spring4与Hibernate4整合

在做Spring4和Hibernate4整合项目的时候,遇到了很多问题,今天总结一下,方便备忘。 其实这是第二次做这样的整合,因为第一次完全没去关心Spring4和Hibernate4到底和3有什么不一样,但是第二次做的时候,因为业务复杂、逻辑较多报出很多很多的BUG,让我只有老老实实的重新学习和认识一下这两个框架及其整合,今天终于在同事和自己研究的情况下得出了一套自己认为比较合适,而且很简

u013671663的博客 2122

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

struts2+spring4+hibernate5整合实例

struts2作为一个很传统的mvc框架,在一些项目中,仍然发挥着重要的作用,另外hibernate和spring的结合也是很常见的,这里介绍struts2+hibernate5+spring4的整合,因为struts2支持最高的spring是4版本,所以这里采用的是spring4。整合的思路比较简单,可以从struts2+spring整合,然后接着整合hibernate+spring。也可以反过...

feinifi的博客 1777

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

spring4整合hibernate5.1

在另一篇文章hibernate5(2)初入门配置实例中,我们针对hibernate5.1版本的崭新引导配置方法,完成了对数据库的的插入实例操作,在本节内容中,我们开始引入spring4,完成spring4与hibernate5.1的整合工作,像数据库中插入一条记录。在后面学习hibernate中,我们都会使用spring来管理我们的Bean容器。1. 导入spring4所需jar包我们推荐使用mav

总结沉淀 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

spring3与hibernate4的整合

首先,spring与hibernate3整合时有三种方式:1、直接使用SessionFactory(该SessionFactory由spring管理并注入)的方式:                           @Resource public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFa

tonysong111073的专栏 9229

总结一下最近整合spring4和hibernate4遇到的问题

刚开始学习javaee,把自己遇到的主要问题总结一下,做个笔记,也希望给别人带来帮助,spring和hibernate均是>基于当前最新版本的上一个版本.4.3.7和4.3.11 遇到的问题 配置文件问题 代码编写问题 参考 项目目录结构 配置文件 webxml spring上下文 spring-servletxml pomxml 遇到的问题:配置文件问题在配置hibernate的session工

Kingber 7738

Spring3整合Hibernate4 Annotation详细图文教程

今天在使用Spring3整合Hibernate4的时候遇到了些问题,所以在这记录下Spring3整合Hibernate4 Annotation的详细步骤,为了以后学习Spring的同学节省点时间。 以上是Spring文档上的例子,在这例子中 它是通过配置dataSource来配置sessionFactory  LocalSessionFactoryBean 有关持久化类的配置采

倾城之恋的专栏 2781

Spring4 MVC 整合Hibernate5 附源码下载

Spring4 MVC 整合Hibernate5     文章转自:anxpp.com     原文链接:http://anxpp.com/index.php/archives/261/     截止发帖时间(2016.01.22),Hibernate最新稳定版为5.0.7.Final,之前已经搭建好了 Spring4.2.4 的框架,这次我就直接基于之前的 Spri

anxpp的博客 5709

Struts2、Spring4、Hibernate4整合 超详细教程

Struts2、Spring4、Hibernate4整合 超详细教程 项目目的:整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4)搭建项目架构原型。 项目架构原型:Struts2 + Spring4.0+ Hibernate4.2.4。 项目特色:同时使用了Struts2、Spring4、Hibernate4、log4j等库或框架,搭建一个最基本的项目原型。

龗孖 3450

SSH框架手动整合——Struts2+Hibernate4+Spring4

最近遇到过一些框架方面的问题,其中有MyBatis、SSH、SpringMVC,其中SSH的一些配置有些忘的差不多了,也有一些同事问了这些问题,前几个月也整合过SSH框架,那个时候是直接拿别人的Jar包直接整合框架,好像是Struts2+Hibernate3+Spring4,这次是相关的Jar从相关的官网下的。我整合的环境: ——Win 64 ——MySQL 5.6 ——MyEclipse 2

在此立一个IT职业上的flag:https://github.com/Zeb-D/my-review 2万+

hibernate4 spring3 整合

hibernate4 spring3 整合   原文地址:http://loushi135.iteye.com/blog/1420309  原文提供了例子下载 由于hibernate4已经完全可以实现事务了 与spring3.1中的hibernatedao,hibernateTemplete等有冲突,所以spring3.1里已经不提供hibernatedaosupport,hib

jalorchen 712

Hibernate4与spring整合找不到org.hibernate.cache.CacheProvider问题

使用Hibernate4与spring整合时出现问题 Caused by: java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider 如果声明事务还有另一个错误 Caused by: java.lang.ClassNotFoundException: org.springframework.orm.hibe

杨梅 1510

Spring4和Hibernate5整合

首先准备开发环境,导入jar包和配置文件,这里配置jar包的方法使用eclipse配置导入jar包这里可以参考我之前的文章里面有配置的具体步骤:http://blog.youkuaiyun.com/weixin_39135506/article/details/75095294 这里使用到的jar包如下图: Hibernate核心jar包 Spring的一些jar包 c3p0的c3...

咬一口空气榨汁机的博客 640

Spring3+hibernate4整合配置

初学框架,遇到了很多麻烦,经过几天周折,终于小荷才露尖尖脚了,为了帮助像我一样的人,总结一下吧。现在一般书上的都是整合spring2.5+hibernate3的多,几乎没有新的。当时下载jar包时下的是hibernate4和spring3.2的,所以整合时,还以为会向下兼容,但整合时抛出的异常是一条又一条。   好吧,Linux打字是硬伤,重点说吧,当用spring集合Hibernate时,可以

tingyingg的专栏 1113
上一篇: spring整合hibernate事务管理的四种方式,以及事务的传播行为和隔离级别介绍
下一篇: Spring管理 hibernate 事务配置的五种方式
mmoooodd
博客等级 码龄18年 35粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值