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);
}
}
}
分享到:
相关推荐
在SSH项目中,正确配置Hibernate的jar包是确保数据库操作顺利进行的关键步骤。 该压缩包“SSH中Hibernate所需基本jar包”包含了运行Hibernate所必需的库文件,这些文件通常会包括以下几类: 1. **Hibernate核心库*...
在上述配置中,`sessionFactory` bean是Hibernate SessionFactory的配置,`dataSource`是指向数据源的引用,`packagesToScan`指定需要扫描的实体类包。`HibernateTransactionManager` bean则将SessionFactory注入,...
4. **配置Spring**: 在Spring的配置文件(如`applicationContext.xml`)中,创建一个SessionFactory的bean,指定Hibernate的配置文件路径。然后,创建一个HibernateTemplate的bean,它将用于执行数据库操作。 5. **...
5. **整合过程**:SSH整合主要包括配置各框架的XML配置文件,如Struts的struts.xml、Spring的applicationContext.xml以及Hibernate的hibernate.cfg.xml。还需要设置数据源、SessionFactory、事务管理器等,并在...
事务配置** 在SSH框架中,Spring提供了声明式事务管理。这允许开发者在XML配置文件中定义事务边界,而不是在代码中显式调用开始和结束事务。例如,可以在Spring的`applicationContext.xml`或`struts-config.xml`...
SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合。这个框架集合了Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)功能,Struts的MVC(Model-View-Controller...
在SSH架构中,Hibernate主要负责数据访问层,即持久化层。 1. **核心功能**: - **ORM(Object Relational Mapping)**:提供对象关系映射机制,简化了Java应用与数据库的交互过程。 - **Session管理**:通过...
7. **整合与配置**:SSH项目的整合涉及到Spring配置文件中对Struts、Hibernate的配置,以及这三个框架之间的交互。例如,Spring管理Struts的Action,Hibernate的数据源和SessionFactory等。 8. **测试与部署**:在...
在Java1Hibernate这个文件中,可能包含了SSH项目中关于Hibernate的示例代码,包括实体类、映射文件、配置文件以及使用Hibernate进行数据操作的Java代码。通过学习和理解这些代码,你可以更好地掌握SSH框架下...
在SSH整合中,Spring负责管理Bean的生命周期,配置事务管理,并与Hibernate集成,处理数据访问层的事务。 2. **Struts 2**:Struts 2是一个基于MVC设计模式的Web应用框架,负责处理HTTP请求,控制应用程序的流程。...
SSH火车订票系统是一款基于Java Web技术开发的项目,它采用了经典的SSH(Spring、Struts2、Hibernate)框架,结合MySQL数据库,实现了在线火车票预订的功能。SSH框架是Java领域中广泛使用的MVC(Model-View-...
在XML配置中,我们可以定义action、result、param等元素,以声明式的方式管理应用程序的行为。 接着,Hibernate是持久层框架,用于处理数据库操作。它通过实体类和映射文件(hibernate.cfg.xml及.hbm.xml)将对象与...
这些资源可能包括Struts2的动作类、配置文件(struts.xml)、Spring的bean配置文件(applicationContext.xml)、Hibernate的实体类和映射文件(hbm.xml)等,以及相关的测试代码和文档,帮助开发者理解和学习如何在...
SSH整合是Java Web开发中的一种常见模式,它结合了Spring框架、Struts2框架和Hibernate持久化框架,以实现高效、灵活的业务逻辑处理和数据管理。以下将详细阐述SSH整合涉及的关键知识点。 1. Spring框架:Spring是...
在实际项目中,SSH整合的优势在于能够充分利用每个框架的优点:Struts2处理用户交互,Spring提供灵活的依赖管理和事务控制,Hibernate则负责数据持久化。这种分层架构提高了代码的可读性和可维护性,降低了组件间的...
在SSH框架中,Hibernate作为ORM工具,通常与Spring事务管理结合使用。当Spring管理事务时,Hibernate的Session将在事务范围内打开和关闭,保证了数据的一致性。 至于Struts,它是SSH框架的前端控制器,主要负责请求...
SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合。这个框架集合了Spring的IoC(Inverse of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)、Struts的MVC...
在实际开发中,通常会结合这三个框架的优点,例如,使用Struts处理请求,Spring管理bean和事务,Hibernate处理数据持久化。分页功能可以封装成一个服务类,通过Spring的依赖注入,使分页逻辑与业务逻辑解耦。同时,...
SSH是Java开发中的一种经典企业级应用框架组合,由Struts2、Spring和Hibernate三个开源框架集成而成。这个组合在Web应用程序开发中被广泛应用,尤其是对于实现MVC(Model-View-Controller)设计模式的三层架构。下面...
在SSH(Struts2、Spring、Hibernate)框架组合中,事务管理是确保数据一致性与完整性的关键机制。SSH是一个常见的Java Web开发栈,用于构建高效、模块化且可维护的应用程序。下面我们将深入探讨SSH中的事务管理和...