`

Spring 整合hibernate 以及注意事项

阅读更多

Spring2.X版本整合Hibernate

Spring2.x整合Hibernate和Spring3.x版基本一致,但要注意以下几点:

1.  Spring2.x只支持Hibernate3 ,并不支持Hibernate4

2、从Spring2.x之后开始支持注解

3、  整合 Hibernate3 使用的SessionFactory Bean 是:org.springframework.orm.hibernate3包下的LocalSessionFactoryBean而不是org.springframework.orm.hibernate4.LocalSessionFactoryBean(Spring3整合hibernate3也是)

4、 导入包时注意删除相同的包!(优先删除版本低的)

 

 

在配置文件中添加SessionFactory 的baen

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <!-- 添加sessionFactory bane ,注意,该类是Spring提供的 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <!-- 注入Hibernate 配置文件路径,前面要加上  classpath:-->
        <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
    </bean>


    <bean id="studentDao" class="com.startspring.dao.impl.StudentDaoImpl">
        <!-- 把sessionFactory 注入给studentDao -->
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <bean id="studentService" class="com.startspring.service.impl.StudentServiceImpl">
        <property name="studentDao" ref="studentDao" />
    </bean>

    <bean id="start" class="com.startspring.Start">
        <property name="studentService" ref="studentService" />
    </bean>
</beans>
复制代码

------------------------------------------------------------------------------------------------------------

使用数据源(DataSource)

如果要使用数据源:

1.先把数据源相关的包导入到项目。

2.在Spring配置文件中添加数据源的bean。

3.把数据源 bean 注入到sessionFactory的dataSource属性。

(关于 Spring 注入数据源:http://www.cnblogs.com/likailan/p/3459776.html

Spring配置文件 如下:

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <!-- 数据源 -->
    <bean id="dataSource" destroy-method="close" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="oracle.jdbc.OracleDriver" />
        <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:ORCL" />
        <property name="user" value="hib" />
        <property name="password" value="hib" />
    </bean>

    <!-- 添加sessionFactory bane ,注意,该类是Spring提供的 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <!-- 注入Hibernate 配置文件路径,前面要加上  classpath:-->
        <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
        <!-- 把数据源 bean 注入到sessionFactory的dataSource属性 -->
        <property name="dataSource" ref="dataSource"/>
    </bean>


    <bean id="studentDao" class="com.startspring.dao.impl.StudentDaoImpl">
        <!-- 把sessionFactory 注入给studentDao -->
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <bean id="studentService" class="com.startspring.service.impl.StudentServiceImpl">
        <property name="studentDao" ref="studentDao" />
    </bean>

    <bean id="start" class="com.startspring.Start">
        <property name="studentService" ref="studentService" />
    </bean>
</beans>
复制代码

现在数据库连接交由数据源来管理。可以把 hibernate.cfg.xml 文件中的connection.driver_class、connection.username等属性去掉了。

--------------------------------------------------------------------------------------------------------------

去掉Hibernate配置文件

通过注入的方式为SessionFactory注入hibernate的配置信息,从而省去hibernate配置文件

Spring配置文件 如下:

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <!-- 数据源 -->
    <bean id="dataSource" destroy-method="close" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="oracle.jdbc.OracleDriver" />
        <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:ORCL" />
        <property name="user" value="hib" />
        <property name="password" value="hib" />
    </bean>

    <!-- 添加sessionFactory bane ,注意,该类是Spring提供的 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <!-- 把数据源 bean 注入到sessionFactory的dataSource属性 -->
        <property name="dataSource" ref="dataSource"/>
        
        <!-- hibernate的基本配置,如:方言,是否显示sql等 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.current_session_context_class">thread</prop>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            </props>
        </property>
        
        <!-- 引入映射文件,如果有多个可以继续添加 <value> -->
        <property name="mappingLocations">
            <list>
                <value>com/startspring/entrty/Student.hbm.xml</value>
            </list>
        </property>
    </bean>


    <bean id="studentDao" class="com.startspring.dao.impl.StudentDaoImpl">
        <!-- 把sessionFactory 注入给studentDao -->
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <bean id="studentService" class="com.startspring.service.impl.StudentServiceImpl">
        <property name="studentDao" ref="studentDao" />
    </bean>

    <bean id="start" class="com.startspring.Start">
        <property name="studentService" ref="studentService" />
    </bean>
</beans>
复制代码

现在可以把 hibernate.cfg.xml 文件删除了。

原来Spring的配置文件中<property name="configLocation" value="classpath:hibernate.cfg.xml"/>这行代码也可以删去了。

分享到:
评论

相关推荐

    struts2 spring hibernate整合要点、注意点

    ### Struts2、Spring与Hibernate整合的关键点及注意事项 #### 一、概述 在Java Web开发领域,Struts2、Spring以及Hibernate是三个非常重要的框架。它们分别在MVC架构、依赖注入与业务逻辑管理、对象关系映射等方面...

    Spring+Struts+Hibernate比较详细的整合配置方案

    1. **Spring整合** - 在MyEclipse中添加Spring支持,选择相应的Spring版本和开发包,如Spring 1.2系列。 - 创建Spring配置文件(如`applicationContext.xml`),配置Bean定义,包括Service层、DAO层以及Action类等...

    structs2+spring+hibernate整合

    5. **整合Hibernate和Spring**:在Spring的配置文件中声明SessionFactory Bean,并将它注入到Service层,Service层再注入到DAO层。这样,Service和DAO可以通过Spring获取SessionFactory,进行数据操作。 6. **测试**...

    Struts2+Spring+Hibernate 整合项目

    在整合SSH的过程中,配置文件的正确设置至关重要,如struts2的struts.properties、spring的applicationContext.xml以及hibernate的hibernate.cfg.xml,这些都需要根据实际环境进行调整。 最后,"SSH_TEST"可能是...

    SpringAOP整合Hibernate并使用事务

    下面我们将详细讲解如何进行Spring AOP整合Hibernate以及如何在其中使用事务。 1. **Spring AOP简介** 面向切面编程(AOP)是Spring框架的核心特性之一,它允许开发者定义“切面”,这些切面可以包含业务逻辑的...

    struts1整合spring及hibernate所需jar包

    7. **注意事项**:整合过程中要注意版本兼容性,不同版本的SSH框架可能存在不兼容的问题。另外,合理配置各个框架的配置文件,避免冲突,确保系统运行稳定。 总结,Struts1、Spring和Hibernate的整合涉及多个jar包...

    spring4+hibernate4+security4整合

    2. **整合Hibernate**:通过Spring的HibernateTemplate或SessionFactoryBean,可以在Spring容器中管理Hibernate的Session。这样,我们可以在Service层使用这些bean来执行数据库操作,而无需直接操作SessionFactory。...

    SSH整合 struts+hibernate+spring

    - **Struts与Spring整合的注意事项**: - 避免直接在Action类中访问Spring上下文,以免破坏Spring的封装性。 - 对Struts的定制可以通过自定义Action代理或者拦截器来实现。 通过以上几个方面的介绍,可以看出SSH...

    spring4mvc+hibernate4的lib包整合!

    **注意事项** - 在整合过程中,需确保各个库版本的兼容性,避免因版本冲突导致的问题。 - 配置文件中的路径、参数和bean定义要准确无误。 - 使用日志框架,如Log4j或Logback,便于调试和问题排查。 - 性能优化,如...

    struts+spring+hibernate整合配置笔记

    **注意事项:** - 在整合过程中,要注意各框架之间的版本兼容性。 - 考虑到性能,可以配置Hibernate的二级缓存和查询优化。 - 事务管理通常在Spring中进行配置,确保数据的一致性。 以上就是关于"Struts+Spring+...

    整合Struts + Spring + Hibernate

    7. **注意事项**: - 避免循环引用:在配置Spring时,要注意避免bean间的循环依赖。 - 事务管理:合理配置事务边界,防止事务异常导致的数据不一致。 - 异常处理:在Struts中配置全局异常处理,确保错误信息能...

    spring struts hibernate ssh整合

    **挑战与注意事项**: - 版本兼容性:不同版本的SSH框架可能存在兼容性问题,需要谨慎选择并测试。 - 性能影响:过多的中间层可能会带来一定的性能开销,需要合理优化。 - 学习曲线:SSH整合涉及多个框架,学习成本...

    spring hibernate struts整合

    通过这样的整合,开发者可以利用Spring的强大管理能力,Hibernate的便捷数据库操作,以及Struts的用户请求处理,构建出高效、稳定的企业级应用。然而,随着技术的发展,Spring Boot和Spring MVC的出现,现在更多地...

    spring3整合hibernate4

    本文将详细阐述如何在Spring 3和Hibernate 4之间进行整合,以及如何通过这个整合实现一个简单的用户登录功能。 首先,Spring作为一款强大的轻量级框架,提供了依赖注入(Dependency Injection,DI)和面向切面编程...

    Struts、Spring、Hibernate整合

    为了整合Hibernate,需要进行以下配置: ##### 1. Hibernate环境搭建 - 添加Hibernate相关的JAR包。 - 创建Hibernate配置文件`hibernate.cfg.xml`。 ##### 2. Hibernate配置文件(hibernate.cfg.xml) ```xml &lt;!...

    flex+java+spring+hibernate+blazeds整合

    本文将详细讲解如何整合Flex、Java、Spring、Hibernate以及BlazeDS,打造一套完整的前后端交互解决方案。 一、Flex概述 Flex是由Adobe公司推出的用于创建富互联网应用程序的开源框架,基于ActionScript编程语言和...

    Struts+Spring+Hibernate源代码.rar

    "新建 文本文档.txt"可能是项目的读取指南或者注意事项。 总之,Struts、Spring和Hibernate的组合为Java Web开发提供了一种高效、灵活的解决方案,帮助开发者快速构建复杂的企业级应用。通过深入理解这三个框架,...

    struct+spring+Hibernate框架整合文档

    **SSH框架整合详解** SSH(Struts2、Spring、Hibernate)是Java开发中常见的三大开源框架,它们分别负责MVC...阅读提供的文档如`struts2-spring-hibernate.doc`和`SSH2整合.doc`,可以获取更详尽的步骤和注意事项。

    Struts2+Spring +Hibernate的整合

    在SSH整合中,Spring主要负责管理对象(包括Struts2的Action和Hibernate的SessionFactory)的生命周期,以及协调各个组件间的交互。此外,Spring还提供了事务管理,确保数据的一致性。 3. **Hibernate**:Hibernate...

Global site tag (gtag.js) - Google Analytics