Spring与Hibernate两种组合方式

Spring与Hibernate大致有两种组合方式,主要区别是一种是在Hibernate中的hibernate.cfg.xml中配置数据源,一种是借助Spring的jdbc方式在Spring的applicationContext.xml文件中配置数据源,然后在Spring配置sessionFactory的bean有些区别

下面大致的说明一下

第一种

1.hibernate.cfg.xml文件

  1. xml version=‘1.0‘ encoding=‘utf-8‘?>
  2. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  4. <hibernate-configuration>
  5. <session-factory>
  6. <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriverproperty>
  7. <property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=acegi;SelectMethod=cursorproperty>
  8. <property name="connection.username">saproperty>
  9. <property name="connection.password">serverproperty>
  10. <property name="show_sql">trueproperty>
  11. <mapping resource=""/>
  12. session-factory>
  13. hibernate-configuration>

2.在spring配置sessionFactory

  1. <bean id="sessionFactory"    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  2. <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
  3. </bean>
  4. <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  5. <property name="sessionFactory" ref="sessionFactory"></property>
  6. </bean>
  7. <tx:annotation-driven transaction-manager="txManager"/>

或者实现hibernate零配置

  1. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  2. <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
  3. <property name="packagesToScan" value="com/wch/entity/"></property>
  4. </bean>
  5. <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  6. <property name="sessionFactory" ref="sessionFactory"></property>
  7. </bean>
  8. <tx:annotation-driven transaction-manager="txManager"/>

第二种

  1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  2. <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
  3. <property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=acegi;SelectMethod=cursor"/>
  4. <property name="username" value="sa"/>
  5. <property name="password" value="server"/>
  6. </bean>
  7. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  8. <property name="dataSource" value="dataSource"></property>
  9. <property name="mappingResources">
  10. <list>
  11. <value>user.hbm.xml</value>
  12. </list>
  13. </property>
  14. <property name="hibernateProperties">
  15. <props>
  16. <prop key="hibernate.show_sql">true</prop>
  17. </props>
  18. </property>
  19. </bean>
  20. </bean>
  21. <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  22. <property name="sessionFactory" ref="sessionFactory"></property>
  23. </bean>
  24. <tx:annotation-driven transaction-manager="txManager"/>

或者实现hibernate的零配置

  1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  2. <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
  3. <property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=acegi;SelectMethod=cursor"/>
  4. <property name="username" value="sa"/>
  5. <property name="password" value="server"/>
  6. </bean>
  7. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  8. <property name="dataSource" value="dataSource"></property>
  9. <property name="packagesToScan" value="com/wch/entity/"></property>
  10. </bean>
  11. <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  12. <property name="sessionFactory" ref="sessionFactory"></property>
  13. </bean>
  14. <tx:annotation-driven transaction-manager="txManager"/>
时间: 2024-10-11 14:47:41

Spring与Hibernate两种组合方式的相关文章

Hibernate系列(四):Hibernate两种查询方式:HQL和Criteria

Hibernate主要是提供与数据库之间交互的一个框架,想要用面向对象的语言操作关系型数据库,有如下两种操作方式: HQL语句:面向对象的查询语言,对象名区分大小写.而且不同于SQL的是这里查询的是对象,而不是表,并且支持多态.hql主要通过Query操作 Criteria类:是一种面向对象的查询,主要查询条件. 一.HQL语句: 比如我们要根据name属性查询一条记录(对象): static void query(String name){ Session s = null; try{ s =

Java Spring AOP的两种配置方式

第一种:注解配置AOP java中注解配置AOP(使用 AspectJ 类库实现的),大致分为三步: 1. 使用注解@Aspect来定义一个切面,在切面中定义切入点(@Pointcut),通知类型(@Before, @AfterReturning,@After,@AfterThrowing,@Around).2. 开发需要被拦截的类.3. 将切面配置到xml中,当然,我们也可以使用自动扫描Bean的方式.这样的话,那就交由Spring AoP容器管理. 另外需要引用 aspectJ 的 jar

spring AOP的两种配置方式

连接点(JoinPoint) ,就是spring允许你是通知(Advice)的地方,那可就真多了,基本每个方法的前.后(两者都有也行),或抛出异常是时都可以是连接点,spring只支持方法连接点.其他如AspectJ还可以让你在构造器或属性注入时都行,不过那不是咱们关注的,只要记住,和方法有关的前前后后都是连接点. 方式一:xml方式配置 1.配置xml文件 <bean id="dataSourceExchange" class="com.ooper.www.datas

Spring Boot 配置文件两种配置方式对比

Spring Boot框架解决java开发中繁琐的xml配置 使我们能够快速的搭建一个基础java项目 Spring Boot配置文件支持.yml 也支持.properties yml 配置加载是有序的 .properties 无序application.yml配置结构 spring:application:name: wxxcxmvc:view:prefix: /WEB-INF/jsp/suffix: jspapplication.yml配置结构 spring.application.name

spring ----&gt; aop的两种实现方式

实现1:基于xml 1 package com.rr.spring3.interf; //接口 2 3 public interface SayHello { 4 5 public void sayHello(); 6 } 1 package com.rr.spring3.interf.impl; //接口实现类 2 3 import com.rr.spring3.interf.SayHello; 4 5 public class Hello implements SayHello { 6 pu

Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解

原创整理不易,转载请注明出处:Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解 代码下载地址:http://www.zuidaima.com/share/1772648445103104.htm 有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz. 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; p

struts2+spring的两种整合方式

借助于Spring插件(Struts2-spring-plugin-XXX.jar),我们可以非常简单地完成Spring和Struts2的整合,这种整合包括让Action自动装配Spring容器中的Bean,以及让Spring管理应用中的Action两种方式,不管采用哪种方式,完成Struts2和Spring的整合都是非常简单的,而且差别不大.一旦在Web应用中安装了Spring插件,即可充分利用该插件提供的功能: 1,可以通过Spring来创建所有的Action,Interceptor和Res

struts2和spring的两种整合方式

首先,来看看如何让Spring 来管理Action. 引入包struts2-spring-plugin-2.2.1.jar 配置 web.xml <!-- 指定spring的配置文件,主要配置spring为随着服务器启动而自启动,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找 --> <context-param> <param-name>contextConfigLocation</param-name&

Hibernate两种获得sessionFactory方式的区别

Hibernate 可以通过sessionFactory.openSession()和sessionFactory.getCurrentSession()来获得session,下面来浅说一下两者区别. [sessionFactory.openSession()]     通过session工厂sessionFactory.openSession()方法来获得一个session,每次都创建一个新的session出来,并且每次Hibernate都会打开数据库和应用程序的连接. [sessionFac