`
zwdsmileface
  • 浏览: 154980 次
社区版块
存档分类
最新评论

SSH中hibernate的事务配置

 
阅读更多
XML配置文件

<?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.0.xsd">
  <bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName">
      <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
    </property>
    <property name="url">
      <value>jdbc:microsoft:sqlserver://localhost:1433</value>
    </property>
    <property name="username">
      <value>sa</value>
    </property>
  </bean>
  <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
      <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">
          org.hibernate.dialect.SQLServerDialect
        </prop>
        <prop key="hibernate.show_sql">true</prop>
      </props>
    </property>
    <property name="mappingResources">
      <list>
        <value>beans/Users.hbm.xml</value>
      </list>
    </property>
  </bean>
  <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
      <ref local="sessionFactory"/>
    </property>
  </bean>
  <bean id="UsersDAO" class="beans.UsersDAO">
    <property name="sessionFactory">
      <ref bean="sessionFactory" />
    </property>
  </bean>
  <bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    <property name="transactionManager">
      <ref local="transactionManager"/>
    </property>
    <!-- 指定直接对类进行代理,将属性proxyTargetClass指定为true(默认是false) -->
    <property name="proxyTargetClass" value="true"/>
    <property name="target">
      <ref local="UsersDAO"/>
    </property>
    <property name="transactionAttributes">
      <props>
        <!-- key表示匹配DAO中的方法名,例如:save*表示所有前缀为save的方法 -->
        <prop key="save*">PROPAGATION_REQUIRED</prop>
        <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
        <prop key="delete*">PROPAGATION_REQUIRED</prop>
        <prop key="update*">PROPAGATION_REQUIRED</prop>
      </props>
    </property>
  </bean>
</beans>
<!--
PROPAGATION_REQUIRED 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 
PROPAGATION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。 
PROPAGATION_MANDATORY 支持当前事务,如果当前没有事务,就抛出异常。 
PROPAGATION_REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。 
PROPAGATION_NOT_SUPPORTED 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 
PROPAGATION_NEVER 以非事务方式执行,如果当前存在事务,则抛出异常。 
PROPAGATION_NESTED 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。 
-->


UsersDAO

package beans;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.marker.spring.MyHibernateDao;
import org.springframework.context.ApplicationContext;

public class UsersDAO extends MyHibernateDao implements UsersInterface
{
    private static final Log log = LogFactory.getLog(UsersDAO.class);
    public static final String NAME = "name";
    public static final String PWD = "pwd";
    public void save(Users transientInstance)
    {
        log.debug("saving Users instance");
        try
        {
            getHibernateTemplate().save(transientInstance);
            log.debug("save successful");
        }
        catch (RuntimeException re)
        {
            log.error("save failed", re);
            throw re;
        }
    }
    public void delete(Users persistentInstance)
    {
        log.debug("deleting Users instance");
        try
        {
            getHibernateTemplate().delete(persistentInstance);
            log.debug("delete successful");
        }
        catch (RuntimeException re)
        {
            log.error("delete failed", re);
            throw re;
        }
    }
    public Users findById(java.lang.Integer id)
    {
        log.debug("getting Users instance with id: " + id);
        try
        {
            Users instance = (Users) getHibernateTemplate().get("beans.Users",
                    id);
            return instance;
        }
        catch (RuntimeException re)
        {
            log.error("get failed", re);
            throw re;
        }
    }
    public void update(Users user)
    {
        try
        {
            getHibernateTemplate().update(user);
            log.debug("update successful");
        }
        catch (RuntimeException re)
        {
            log.error("update failed",re);
        }
    }
}
1
3
分享到:
评论

相关推荐

    SSH中Hibernate所需基本jar包

    在SSH项目中,正确配置Hibernate的jar包是确保数据库操作顺利进行的关键步骤。 该压缩包“SSH中Hibernate所需基本jar包”包含了运行Hibernate所必需的库文件,这些文件通常会包括以下几类: 1. **Hibernate核心库*...

    ssh整合带hibernate配置文件

    在上述配置中,`sessionFactory` bean是Hibernate SessionFactory的配置,`dataSource`是指向数据源的引用,`packagesToScan`指定需要扫描的实体类包。`HibernateTransactionManager` bean则将SessionFactory注入,...

    ssh中hibernate5的整合

    4. **配置Spring**: 在Spring的配置文件(如`applicationContext.xml`)中,创建一个SessionFactory的bean,指定Hibernate的配置文件路径。然后,创建一个HibernateTemplate的bean,它将用于执行数据库操作。 5. **...

    SSH整合hibernate完整jar包

    5. **整合过程**:SSH整合主要包括配置各框架的XML配置文件,如Struts的struts.xml、Spring的applicationContext.xml以及Hibernate的hibernate.cfg.xml。还需要设置数据源、SessionFactory、事务管理器等,并在...

    在SSH中使用事物包括SSH的搭建和配置;事务的配置;注释详细。(完整项目)

    事务配置** 在SSH框架中,Spring提供了声明式事务管理。这允许开发者在XML配置文件中定义事务边界,而不是在代码中显式调用开始和结束事务。例如,可以在Spring的`applicationContext.xml`或`struts-config.xml`...

    SSH框架中构建hibernate必须的包

    SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合。这个框架集合了Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)功能,Struts的MVC(Model-View-Controller...

    SSH中 struts hibernate spring 各起什么作用

    在SSH架构中,Hibernate主要负责数据访问层,即持久化层。 1. **核心功能**: - **ORM(Object Relational Mapping)**:提供对象关系映射机制,简化了Java应用与数据库的交互过程。 - **Session管理**:通过...

    java SSH项目 hibernate annotation

    7. **整合与配置**:SSH项目的整合涉及到Spring配置文件中对Struts、Hibernate的配置,以及这三个框架之间的交互。例如,Spring管理Struts的Action,Hibernate的数据源和SessionFactory等。 8. **测试与部署**:在...

    ssh中Hibernate

    在Java1Hibernate这个文件中,可能包含了SSH项目中关于Hibernate的示例代码,包括实体类、映射文件、配置文件以及使用Hibernate进行数据操作的Java代码。通过学习和理解这些代码,你可以更好地掌握SSH框架下...

    ssh 整合 hibernate jar

    在SSH整合中,Spring负责管理Bean的生命周期,配置事务管理,并与Hibernate集成,处理数据访问层的事务。 2. **Struts 2**:Struts 2是一个基于MVC设计模式的Web应用框架,负责处理HTTP请求,控制应用程序的流程。...

    SSH(hibernate+struts2+spring)火车订票系统源代码

    SSH火车订票系统是一款基于Java Web技术开发的项目,它采用了经典的SSH(Spring、Struts2、Hibernate)框架,结合MySQL数据库,实现了在线火车票预订的功能。SSH框架是Java领域中广泛使用的MVC(Model-View-...

    SSH三大框架整合 struts2(使用xml配置)+hibernate(使用xml配置)+spring(使用xml配置)

    在XML配置中,我们可以定义action、result、param等元素,以声明式的方式管理应用程序的行为。 接着,Hibernate是持久层框架,用于处理数据库操作。它通过实体类和映射文件(hibernate.cfg.xml及.hbm.xml)将对象与...

    当当网ssh struts hibernate

    这些资源可能包括Struts2的动作类、配置文件(struts.xml)、Spring的bean配置文件(applicationContext.xml)、Hibernate的实体类和映射文件(hbm.xml)等,以及相关的测试代码和文档,帮助开发者理解和学习如何在...

    ssh(sevrlet+spring+hibernate)整合所需jar包

    SSH整合是Java Web开发中的一种常见模式,它结合了Spring框架、Struts2框架和Hibernate持久化框架,以实现高效、灵活的业务逻辑处理和数据管理。以下将详细阐述SSH整合涉及的关键知识点。 1. Spring框架:Spring是...

    step by step 06 ssh整合hibernate

    在实际项目中,SSH整合的优势在于能够充分利用每个框架的优点:Struts2处理用户交互,Spring提供灵活的依赖管理和事务控制,Hibernate则负责数据持久化。这种分层架构提高了代码的可读性和可维护性,降低了组件间的...

    在SSH框架中加入事务支持

    在SSH框架中,Hibernate作为ORM工具,通常与Spring事务管理结合使用。当Spring管理事务时,Hibernate的Session将在事务范围内打开和关闭,保证了数据的一致性。 至于Struts,它是SSH框架的前端控制器,主要负责请求...

    ssh框架hibernate所需jar包

    SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合。这个框架集合了Spring的IoC(Inverse of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)、Struts的MVC...

    ssh struts hibernate spring 分页

    在实际开发中,通常会结合这三个框架的优点,例如,使用Struts处理请求,Spring管理bean和事务,Hibernate处理数据持久化。分页功能可以封装成一个服务类,通过Spring的依赖注入,使分页逻辑与业务逻辑解耦。同时,...

    SSH (hibernate +struts2 + spring)

    SSH是Java开发中的一种经典企业级应用框架组合,由Struts2、Spring和Hibernate三个开源框架集成而成。这个组合在Web应用程序开发中被广泛应用,尤其是对于实现MVC(Model-View-Controller)设计模式的三层架构。下面...

    在SSH中使用事物包括SSH的搭建和配置;事物的配置;注释详细

    在SSH(Struts2、Spring、Hibernate)框架组合中,事务管理是确保数据一致性与完整性的关键机制。SSH是一个常见的Java Web开发栈,用于构建高效、模块化且可维护的应用程序。下面我们将深入探讨SSH中的事务管理和...

Global site tag (gtag.js) - Google Analytics