关闭

Spring与Hibernate整合(一)

1155人阅读 评论(3) 收藏 举报

  我们之所以整合框架,就是因为它们整合在一起后会工作的更好,它们为各自提供了一些操作。

我们整合Spring与Hibernate也不例外,就是因为Spring为Hibernate增加了以下内容:

  1.Spring为Hibernate的session提供了有效、容易和安全的控制。

  2.Spring控制Hibernate的SessionFactory,JDBC DataSources及其它相关资源。

  3.Spring提供了完整的事务管理。

  4.Spring对异常处理进行了封装。

 

  Spring与Hibernate的集成先要确定配置文件的配置方式,然后再根据配置方式决定编写实现类。

 

  配置文件方面,主要是需要在applicationContext-commons.xml中配置sessionFactory,事务管理器和事务(还需要提供applicationContext-beans.xml来注册各个类,见文件最后)。

 

  由于Spring对Hibernate提供了多种支持,所以它们各自就会有多种配置方式,下面就来分别讲解一下具体的配置方法。

 

  1.sessionFactory的两种配置方式

    由于Spring对Hibernate的SessionFactory,JDBC DataSources及其它相关资源进行了控制,所以可以不使用hibernate.cfg.xml,于是配置sessionFactory的两种方式诞生了:使用hibernate.cfg.xml和不使用hibernate.cfg.xml文件。

    1)使用hibernate.cfg.xml

    这种方法是比较常见的方法,就是我们编写一个hibernate.cfg.xml和一个applicationContext.xml文件。

 

    我们先来看hibernate.cfg.xml:

<hibernate-configuration>
   <session-factory>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.password">dan</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:dan</property>
        <property name="hibernate.connection.username">dan</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>

        <mappingresource="com/entity/hbm/User.hbm.xml"/>
   </session-factory>
</hibernate-configuration>


    接着我们来看applicationContext.xml的配置:

 

<!-- 配置SessionFactory-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 加载hibernate.cfg.xml配置文件 -->
        <property name="configLocation">
            <value>classpath:hibernate.cfg.xml</value>
        </property>
</bean>


     2)不使用hibernate.cfg.xml

    由于spring对jdbcdatasource进行了支持,所以这种方式就相当于把hibernate.cfg.xml中的内容放到了applicationContext.xml中。

   

    注意:使用这种方法要先引入两个jar包:commons-dbcp.jar和commons-pool.jar(这两个jar包就是spring对jdbc的支持)。

   

    下面就来看一下applicationContext.xml的代码:

  

<!—使用BasicDataSource配置SessionFactory -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:dan"></property>
        <property name="username" value="dan"></property>
        <property name="password" value="dan"></property>
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>       

        <!-- hibernate属性配置 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>        

        <!-- 采用传统的方式的hbm.xml的方式,可以采用如下方式来简化注册hbm.xml的步骤-->
        <property name="mappingLocations">
            <list>
                <value>classpath:/com/entity/hbm/User.hbm.xml</value>
            </list>
        </property>
</bean>

  接下来会继续介绍事务的配置,请看《Spring与Hibernate整合方式(二)》。

2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:422274次
    • 积分:8616
    • 等级:
    • 排名:第2318名
    • 原创:245篇
    • 转载:15篇
    • 译文:2篇
    • 评论:1328条
    文章分类
    最新评论