如何整合spring和hibernate,整合之后,spring主要负责管理hiberante的那些事务呢???

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【xwnxwn】截止到2008-07-19 11:17:05的历史汇总数据(不包括此帖):
    发帖的总数量:25                       发帖的总分数:290                      每贴平均分数:11                       
    回帖的总数量:29                       得分贴总数量:4                        回帖的得分率:13%                      
    结贴的总数量:25                       结贴的总分数:290                      
    无满意结贴数:14                       无满意结贴分:290                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:56.00 %               无满意结分率:100.00%                  
    敬礼!
      

  2.   

    不知道从那里说起,呵呵,给lz找了一篇文章,希望有时间的话就看看,讲述hibernate和spring整合方面关于事务和aop的。应该对你会有帮助http://www.ibm.com/developerworks/cn/java/wa-spring2/
      

  3.   

    你可以试用myeclipse添加spring,hibernate功能,然后把hibernate的配置文件放到spring里面去就OK了
    自己仔细看一下里面的代码就OK了,管理hibernate的对数据库连接的配置等
      

  4.   

    使用平台:Eclipse3.2、MyEclipse5.01GA
    Struts、Spring、Hibernate三个框架在MyEclipse下添加顺序为:
    首先新建一个Web Project,添加Add Struts Capabilities…,设置好包路径后继续;选择MyEclipse菜单下的Add Spring Capabilities…选择所有的标签库,JAR Library Installation位置选择“Copy”项,下一步,设置Spring Bean配置文件位置,一般就默认在SRC目录,点击完成,就添加了Spring,继续;切换到MyEclipse Database Explorer(数据库浏览器视图),添加一个数据连接,测试连接成功后继续,这一步是为了给下面添加Hibernate框架准备的,因为它在建立过程中需要指定一个有效连接数据库的连接;选择MyEclipse菜单下的Add Hibernate Capabilities…选择反有的标签库,包括Spring的,JAR Library Installation位置还是选择“Copy”项,下一步;因为之前添加了Spring框架,所以这里就会自动识别到,并询问你使用Hibernate的配置文件“hibernate.cfg.xml”还是使用Spring的配置文件“applicationContext.xml”,这里选择Spring来统一配置,下一步;此处是定义Spring配置文件是需要新建还是使用已存在的Spring配置文件,这里选择Existing Spring configuration file,即使用已存在的Spring配置文件“src/applicationContext.xml”,下方需要指定Hibernate的SessionFactory在Spring配置文件中的Bean ID,使用“sessionFactory”即可,下一步;在DB Profile的下拉列表中选择刚刚建立的连接,并在Bean ID处设置这个DataSource在Spring配置文件中的Bean ID名,这里使用“DataSource”,下一步;接下来的Define SessionFactory properties界面是配置Hibernate的SessionFactory工具类存放位置,设置好包路径后,下一步;点击Finish,就完成了对Struts、Spring、Hibernate三个框架的设置。这里还需要配置Log4J(日志工具),只需将以下两个文件复制到SRC目录下即可
    commons-loggingproperties.properties
    log4j.properties
    至于这两文件里的具体配置就不再多说。接下来,先完成JSP页面、ActionForm、及Action的添加,添加过程就不再多说。再就是为数据表添加持久化类,过程是在MyEclipse DataBase Explorer中打开连接,找到所需的表后,鼠标右键点击表名,选择“Hibernate Reverse Engineering…”,设置了包路径后,依次钩选“Hibernate Mapping File”、“Java Data Object”(取消钩选“Create abstract class”)以及“Java Data Access Object(DAO)”,在“Java Data Access Object(DAO)”下会自动钩选“Generate precise findby methods”,以及选择“Spring DAO”选项,使用“Spring DAO”后,在DAO类里转而使用了HibernateTemplate对象来操作数据库,据说可以免去事务管理,具体情况,明天再继续研究。生成完持久化类后,需要在Struts-config.xml文件里添加以下字段:
    <plug-in className=
      "org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property=
          "contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>
    </plug-in>
    Value值就指定了Spring配置文件applicationContext.xml文件具体包位置。接着在Action中需要做以下操作:
    导入import org.springframework.web.struts.ActionSupport;包
    原先Action是继承Action类的,例:
    public class EmployeeListAction extends Action
    这里将它改为继承ActionSupport类,例:
    public class EmployeeListAction extends ActionSupport生成一个数据表的DAO对象,格式如下:
    EmployeeinfoDAO empDao=EmployeeinfoDAO.getFromApplicationContext(this.getWebApplicationContext());        
    List empList=empDao.getHibernateTemplate().loadAll(Employeeinfo.class);    如此就完成了读取一个数据表里所有字段的操作,是不是很简单呢?
      

  5.   

    如果要整合ssh,一般来说,是不是先添加struts 然后spring 最后是hibernate呢?
      

  6.   

    看看Spring的相关书籍,像李刚的轻量级Struts+hibernate+spring整合开发,
    这本书介绍的还不错的
      

  7.   

    先添加hibernate后添加spring最后添加struts框架
    其实我也刚学习呢
    以后互相学习吧
      

  8.   

    对数据的操作纳入管理。
    <!-- Hibernate Transaction Manager Definition -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory"><ref local="sessionFactory"/></property>
    </bean>
        
        <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
            <property name="transactionManager" ref="transactionManager" />
            <property name="transactionAttributeSource">
                <ref bean="namingTransactionAttribute" />
            </property>
        </bean>
        <bean id="namingTransactionAttribute" class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
            <property name="properties">
                <props>
                    <prop key="te*">PROPAGATION_REQUIRED,-Exception</prop>
                    <prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
                    <prop key="upload*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="create*">PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-Exception</prop>
    <prop key="insert*">PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="delete*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="send*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="submit*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="presubmit*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="init*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="on*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="extract*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="gene*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="update*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                    <prop key="add*">PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-Exception</prop>
                </props>
            </property>
        </bean>
      

  9.   

    在添加hibernate框架的时候,是把hibernate.cfg.xml中内容防入spring的applicationcontext.xml中还是单独创建一个hibernate.cfg.xml好呢?请大家指教!!  谢谢了!
      

  10.   

    支持楼主单独创建一个hibernate.cfg.xml
    如果要用spring来管理事务,那么就要在applicationcontext.xml里配置数据源,<bean id="transactionManager"
    class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory"
    ref="entityManagerFactory" />
    </bean>
    <bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="shop" />
    </bean>上面我用的是JPA,楼主换成hibernate就行.
      

  11.   

    单独创建一个hibernate.cfg.xml 好处是什么?