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.  
  5. <hibernate-configuration> 
  6.  
  7.     <session-factory> 
  8.  
  9.          
  10.         <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriverproperty> 
  11.         <property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=acegi;SelectMethod=cursorproperty> 
  12.         <property name="connection.username">saproperty> 
  13.         <property name="connection.password">serverproperty> 
  14.         <property name="show_sql">trueproperty> 
  15.  
  16.          <mapping resource=""/> 
  17.  
  18.     session-factory> 
  19.  
  20. 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.  
  7.  
  8.    </bean> 
  9.     
  10.  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
  11.    <property name="dataSource" value="dataSource"></property> 
  12.  
  13. <property name="mappingResources"> 
  14.      <list> 
  15.               <value>user.hbm.xml</value> 
  16.      </list> 
  17.  </property> 
  18.  <property name="hibernateProperties"> 
  19.       <props> 
  20.         <prop key="hibernate.show_sql">true</prop> 
  21.    </props> 
  22.   </property> 
  23.  </bean>    
  24.  
  25.     </bean> 
  26.  <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
  27.     <property name="sessionFactory" ref="sessionFactory"></property> 
  28.  </bean> 
  29.  <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.    
  8. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
  9.   <property name="dataSource" value="dataSource"></property> 
  10.    <property name="packagesToScan" value="com/wch/entity/"></property> 
  11. </bean> 
  12. <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
  13.    <property name="sessionFactory" ref="sessionFactory"></property> 
  14. </bean> 
  15. <tx:annotation-driven transaction-manager="txManager"/>  

【编辑推荐】

  1. Spring控制反转(IoC)容器
  2. Spring is coming
  3. 在Spring中进行集成测试
  4. Spring中的TopLink ServerSession
  5. Spring声明式事务
责任编辑:彭凡 来源: JavaEye
相关推荐

2009-09-08 15:22:20

Spring依赖注入

2009-06-15 15:02:48

Spring定时器

2015-05-06 10:05:22

javajava框架spring aop

2011-03-03 10:26:04

Pureftpd

2010-09-07 11:09:59

2010-08-06 09:38:11

Flex读取XML

2010-04-20 15:32:20

主控负载均衡

2023-03-29 13:06:36

2010-02-02 14:32:32

Python线程编程

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2021-05-27 10:57:01

TCP定时器网络协议

2009-06-02 14:12:26

Hibernate配置文件格式

2021-01-25 14:10:49

Spring BootVueJava

2024-03-29 11:33:23

转换[]bytestring

2011-04-02 09:48:38

深拷贝

2010-07-15 14:38:55

Perl eval函数

2016-11-07 09:02:02

Malloc内存syscall

2011-06-16 10:02:08

JAVA静态载入

2010-08-03 13:27:04

FlexBuilder
点赞
收藏

51CTO技术栈公众号