spring3-hibernate3整合

Spring与Hibernate整合关键点:

1) Hibernate的SessionFactory对象交给Spring创建;

2) hibernate事务交给spring的声明式事务管理。

SH整合步骤:

1)引入jar包

连接池/数据库驱动包

Hibernate相关jar

Spring 核心包(5个)

Spring aop 包(4个)

spring-orm-3.2.5.RELEASE.jar            【spring对hibernate的支持】

          spring-tx-3.2.5.RELEASE.jar                           【事务相关】

2)配置

hibernate.cfg.xml

bean.xml

3)搭建环境、单独测试

步骤实现

  1 // 数据访问层
  2 public class DeptDao {
  3
  4     // Spring与Hibernate整合: IOC容器注入
  5     private SessionFactory sessionFactory;
  6     public void setSessionFactory(SessionFactory sessionFactory) {
  7         this.sessionFactory = sessionFactory;
  8     }
  9
 10     // 保存一个记录
 11     // Spring与Hibernate整合:事务管理交给Spring
 12     public void save(Dept dept) {
 13         sessionFactory.getCurrentSession().save(dept);
 14     }
 15 }
 16 2. DeptService
 17 public class DeptService {
 18
 19     private DeptDao deptDao;
 20     public void setDeptDao(DeptDao deptDao) {
 21         this.deptDao = deptDao;
 22     }
 23
 24     public void save(Dept dept){
 25         deptDao.save(dept);
 26     }
 27 }
 28
 29 3. App.java  测试
 30 public class App {
 31
 32     // 容器
 33     private ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
 34
 35     @Test
 36     public void testApp() throws Exception {
 37         DeptService deptServie = (DeptService) ac.getBean("deptService");
 38         System.out.println(deptServie.getClass());
 39
 40         deptServie.save(new Dept());
 41     }
 42 }
 43 4. bean.xml 配置  【Spring管理SessionFactory的3中方式】
 44 <?xml version="1.0" encoding="UTF-8"?>
 45 <beans xmlns="http://www.springframework.org/schema/beans"
 46     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 47     xmlns:p="http://www.springframework.org/schema/p"
 48     xmlns:context="http://www.springframework.org/schema/context"
 49     xmlns:aop="http://www.springframework.org/schema/aop"
 50     xmlns:tx="http://www.springframework.org/schema/tx"
 51     xsi:schemaLocation="http://www.springframework.org/schema/beans
 52          http://www.springframework.org/schema/beans/spring-beans.xsd
 53           http://www.springframework.org/schema/context
 54          http://www.springframework.org/schema/context/spring-context.xsd
 55          http://www.springframework.org/schema/aop
 56          http://www.springframework.org/schema/aop/spring-aop.xsd
 57          http://www.springframework.org/schema/tx
 58           http://www.springframework.org/schema/tx/spring-tx.xsd">
 59
 60     <!-- dao 实例 -->
 61     <bean id="deptDao" class="cn.itcast.dao.DeptDao">
 62         <property name="sessionFactory" ref="sessionFactory"></property>
 63     </bean>
 64
 65     <!-- service 实例 -->
 66     <bean id="deptService" class="cn.itcast.service.DeptService">
 67         <property name="deptDao" ref="deptDao"></property>
 68     </bean>
 69
 70     <!-- 数据源配置 -->
 71     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
 72         <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
 73         <property name="jdbcUrl" value="jdbc:mysql:///hib_demo"></property>
 74         <property name="user" value="root"></property>
 75         <property name="password" value="root"></property>
 76         <property name="initialPoolSize" value="3"></property>
 77         <property name="maxPoolSize" value="10"></property>
 78         <property name="maxStatements" value="100"></property>
 79         <property name="acquireIncrement" value="2"></property>
 80     </bean>
 81
 82     <!-- ###########Spring与Hibernate整合  start########### -->
 83
 84     <!-- 方式(1)直接加载hibernate.cfg.xml文件的方式整合
 85     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
 86         <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
 87     </bean>    -->
 88
 89     <!-- 方式(2)连接池交给spring管理  【一部分配置写到hibernate中,一份分在spring中完成】
 90     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
 91         <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
 92         <property name="dataSource" ref="dataSource"></property>
 93     </bean> -->
 94
 95     <!-- 【推荐】方式(3)所有的配置全部都在Spring配置文件中完成 -->
 96     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
 97         <!-- 注入连接池对象 -->
 98         <property name="dataSource" ref="dataSource"></property>
 99
100         <!-- hibernate常用配置 -->
101         <property name="hibernateProperties">
102             <props>
103                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
104                 <prop key="hibernate.show_sql">true</prop>
105                 <prop key="hibernate.hbm2ddl.auto">update</prop>
106             </props>
107         </property>
108
109         <!-- hibernate映射配置
110         <property name="mappingLocations">
111             <list>
112                 <value>classpath:cn/itcast/entity/*.hbm.xml</value>
113             </list>
114         </property>
115         -->
116         <property name="mappingDirectoryLocations">
117             <list>
118                 <value>classpath:cn/itcast/entity/</value>
119             </list>
120         </property>
121     </bean>
122
123
124
125     <!-- ###########Spring与Hibernate整合  end########### -->
126
127     <!-- 事务配置 -->
128     <!-- a. 配置事务管理器类 -->
129     <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
130         <property name="sessionFactory" ref="sessionFactory"></property>
131     </bean>
132     <!-- b. 配置事务增强(拦截到方法后如果管理事务?) -->
133     <tx:advice id="txAdvice" transaction-manager="txManager">
134         <tx:attributes>
135             <tx:method name="*" read-only="false"/>
136         </tx:attributes>
137     </tx:advice>
138     <!-- c. Aop配置 -->
139     <aop:config>
140          <aop:pointcut expression="execution(* cn.itcast.service.*.*(..))" id="pt"/>
141          <aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/>
142     </aop:config>
143
144 </beans>     
时间: 2024-08-09 14:40:07

spring3-hibernate3整合的相关文章

spring3.* + hibernate3.* 整合常见问题总结

1.为了解决应用中的中文乱码问题,我们可以不用自己开发过滤器类,Spring为我们提供了一个,只需要配置一下即可: <!-- 解决乱码问题 --> <filter> <filter-name>CharacterFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-

spring3+struts2+hibernate3整合出现的问题,No mapping found for dependency [type=java.lang.String, name=&#39;struts.objectFactory.spring.enableAopSupport&#39;]

七月 11, 2016 3:49:24 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:EBook' did not find a matching property.七月 11, 2016 3:4

Struts2,Spring3,Hibernate4整合--SSH框架

Struts2,Spring3,Hibernate4整合--SSH框架(学习中) 一.包的导入 1.Spring包 2.Hibernate 包 3.struts 包 4.数据库方面的包及junt4的包 二.配置文件 1.beans.xml (具体要注意的已经注释到 xml 中了,目前整合了Spring 与 hibernate4 ) <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h

Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法(转)

一.开篇 这里整合分别采用了Hibernate和MyBatis两大持久层框架,Hibernate主要完成增删改功能和一些单一的对象查询功能,MyBatis主要负责查询功能.所以在出来数据库方言的时候基本上没有什么问题,但唯一可能出现问题的就是在hibernate做添加操作生成主键策略的时候.因为我们都知道hibernate的数据库本地方言会针对不同的数据库采用不同的主键生成策略. 所以针对这一问题不得不采用自定义的主键生成策略,自己写一个主键生成器的表来维护主键生成方式或以及使用其他的方式来生成

SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)

这篇博文的目的 尝试搭建一个完整的SSH框架项目. 给以后的自己,也给别人一个参考. 读博文前应该注意: 本文提纲:本文通过一个用户注册的实例讲解SSH的整合.创建Struts项目,整合Hibernate,整合Spring.最后总结如何熟练创建SSH项目. 仅是创建SSH项目,对于其他的扩展例如Struts的国际化,Hibernate的缓存优化,Spring的AOP等,本博文涉及不到.想学习更多的东西请搜索其他博文. 本项目的环境:Windows 8-64位,Eclipse Indigo Ser

Struts2+Spring3+MyBatis3整合以及Spring注解开发

 分类: Web(2)  版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在做一个SpringMVC+spring+MyBatis的项目,突然想起以前自己要搭建一个Struts2+Spring+IBatis的框架,但是没成功,正好看见培训时候老师给的千里之行的开源项目.于是将这个项目提供的SQL加入到了自己的数据库中(所以数据和项目名用的是qlzx),打算以后做练习的时候用这个数据库.那么接下来问题来了(不要说某翔或者不约,不是那个问题):我有了数据库和数据,想要搭建一个网站,该怎么做

struts2+spring3+hibernate3+mysql简单登录实现

1.导入相关的jar包 2.建立数据库 1 create table account( 2 id int(10), 3 user varchar(50), 4 paw varchar(50) 5 ); 6 insert into account values(1,'admin','admin'); 3.建立包结构 4.配置文件的配置及代码 4.1 数据库配置文件:db.properties 1 #jdbc 2 jdbc.driver=com.mysql.jdbc.Driver 3 jdbc.ur

mybatis和spring3.1整合

因spring3发布时mybatis还没有出正式版本,所以spring没有整合最新的mybatis.不过社区倒是开发了一个中间件. 需要的jar包 mybatis-3.0.6.jar mybatis-spring-1.0.2.jar 要点: 1.在spring中配置mybatis工厂类 2.在dao层使用spring注入的的工具bean对数据进行操作 整合时,可以有四种方式来使用mybatis进行数据处理. spring 中必须的配置. spring的配置文件中加入以下内容 Xml代码   <!

Struts2+Spring3+Hibernate——整合byMaven

在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框架来开发项目,而这些框架一般不是单独使用的,经常是Struts2+Spring3+Hibernate.SpringMVC+Spring+Hibernate.SpringMVC+Spring+Mybatis这几种组合中的一种,也就是多个框架配合起来使用.今天来总结一下如何使用Maven搭建Struts2+Spring3+Hibern

画蛇添足-记spring3 hibernate4整合时遇到问题的处理办法

最近在来到一个新公司,使用新的spring3,hibernate4框架,在使用注解事务总是不起作用. 首先看配置文件,然后再讲解. 首先是springmvc-servlet.xml,这个配置文件是servlet的加载文件, 引用这个文件的位置是在web.xml里 <!-- 定义 springmvcServlet --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>