spring入门实例-DAO,事务
实例使用代理模式,使用DAO,并且添加事务功能
配置文件:
<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 name="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@192.168.32.227:1521:orcl</value>
</property>
<property name="password">
<value>lpromis</value>
</property>
<property name="username">
<value>lpromis</value>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
</bean>
<bean id="userDAO"
class="com.myspring.bussiness.declare.DataSourceDAO">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
</bean>
<bean id="userDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="target">
<ref bean="userDAO"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
</beans>
使用 org.springframework.transaction.interceptor.TransactionProxyFactoryBean实现代理事务,事务处理类
transactionManager,DAO的bean是userDAO,代理事务属性设置为insert操作,
其中PROPAGATION_REQUIRED,是事务操作属性,还有许多,有兴趣可以自己看看api。
bean的实现:
/**
* use declarative transaction
* @author logichina
*
*/
public class DataSourceDAO
{
private DataSource dataSource;
public void setDataSource(DataSource dataSource)
{
this.dataSource = dataSource;
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
private JdbcTemplate jdbcTemplate;
public void insertCustomer()
{
jdbcTemplate.update("insert into t_lpromis_yxgl_khxx(id,khqc) values('000023','testname4')");
jdbcTemplate.update("insert into t_lpromis_yxgl_khxx(id,khqc) values('000024','testname5')");
jdbcTemplate.update("insert into t_lpromis_yxgl_khxx(id,khqc) values('000023','testname6')");
}
public static void main(String[] args)
{
ApplicationContext context = new ClassPathXmlApplicationContext("com/myspring/bussiness/declare/datasourceDAO.xml");
DataSourceDAO bean = (DataSourceDAO) context.getBean("userDAOProxy");
bean.insertCustomer();
}
}
分享到:
相关推荐
- 通过 `<tx:annotation-driven/>` 标签或相应的 Java 配置启用 Spring 的事务管理功能,这样可以在 Service 层使用 `@Transactional` 注解来声明式地管理事务。 5. **使用 Repository 接口**: - 在 Service 层...
在`spring入门实例`中,你可能会看到如何使用`@Autowired`注解来自动装配数据源,以及如何通过`@Repository`注解创建DAO层的bean。 事务管理也是Spring的一大亮点。Spring支持编程式和声明式事务管理。声明式事务...
"dbApi-spring-boot-starter-demo-master"是一个完整的实例项目,它展示了如何集成和使用dbApi-spring-boot-starter。主要包含以下几个部分: 1. 主配置:分析项目的主配置文件,了解如何配置数据库连接以及启动器...
【Spring Data JPA 入门实例】 Spring Data JPA 是 Spring 框架的一个模块,它简化了数据库访问层(DAO)的开发,通过提供自动化的 Repository 实现,使得开发者无需编写大量的 CRUD(创建、读取、更新、删除)代码...
在Spring入门阶段,首先要理解的是依赖注入(DI)。DI是一种设计模式,它允许我们解耦组件,让它们之间通过接口而非具体的实现进行交互。Spring通过容器管理对象的生命周期和依赖关系,我们只需要配置好bean的定义,...
下面我们将深入探讨"非注解SpringMVC+Spring+Hibernate入门实例"中的关键知识点。 首先,让我们从SpringMVC开始。SpringMVC是一个Model-View-Controller架构模式的实现,用于构建Web应用程序。在非注解方式下,我们...
这个入门实例通过实际操作,帮助初学者理解Struts2框架的运作方式,以及如何将它应用到实际的用户注册和登录功能中。通过学习和实践,开发者可以更好地掌握Java Web开发的基本技能,并为更复杂的项目打下坚实的基础...
容器管理事务是指由应用服务器或Spring容器本身管理事务,适用于那些不希望在业务逻辑中显式控制事务的场景。 ##### 4.3 编程式事务管理 对于需要更细粒度控制的场景,MyBatis-Spring提供了编程式事务管理的支持,...
在整合Spring时,Struts2可以利用Spring的依赖注入(DI)特性,将Service层对象注入到Action中,使得Action无需手动创建Service实例。 接下来,Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作。在本...
4. **Spring与MyBatis整合**:Spring MyBatis教程会讲解如何将Spring的依赖注入和事务管理与MyBatis的SQL映射相结合,实现更灵活的数据访问。这包括配置MyBatis的SqlSessionFactory,创建Mapper接口,以及使用`@...
3. **面向切面编程(Aspect-Oriented Programming, AOP)**:Spring提供了AOP支持,允许开发者将关注点(如日志、事务管理)与业务逻辑分离,实现代码的模块化和解耦。 4. **数据访问集成**:Spring支持多种数据库...
描述中提到的“添加用户实例”是Spring框架中一个常见的应用场景,通常涉及到数据持久化、事务管理和验证。在Spring 2.x中,我们可以使用Spring JDBC或Hibernate等ORM工具来与数据库交互,实现用户数据的增删改查。...
### Spring入门教程知识点详解 #### 一、理论知识 ##### 1. 依赖注入与控制反转 - **依赖注入**(Dependency Injection, DI):在应用程序的运行期间,由外部容器(例如Spring容器)动态地将一个对象所依赖的其他...
Spring框架覆盖了Java EE架构的每一层,主要包括web层的Spring MVC、Service层的Bean管理和声明式事务管理、以及DAO层的JDBC模板和ORM框架整合。通过Spring框架的应用,开发者可以使用其提供的各种功能模块和工具来...
Spring Data JPA支持声明式事务管理。通过在Service层的方法上添加`@Transactional`注解,可以开启一个事务,确保一组数据库操作要么全部成功,要么全部回滚。 9. **其他高级特性** Spring Data JPA还支持分页...
【Struts2+Hibernate3.2+Spring2.0配置+入门实例】 本文将详细介绍如何配置和构建一个基于Struts2、Hibernate3.2和Spring2.0的企业级Java应用入门实例。首先,我们理解整体架构,这有助于我们更好地了解各个组件的...
- 通过 Spring 的声明式事务管理,可以在配置文件中定义事务边界,简化事务处理。 - 使用 Spring 的 DataSource 和 SessionFactory 配置,以便在 Spring 环境下管理 Hibernate 连接和会话。 - 将 Hibernate 的 ...
结合spring struts hibernate dwr jstl做的实例,struts hibernate dwr 与Spring完全结合,实现用户列表、信息增、删、改、查、维护时用户重名提示等功能,还包括页面自动转码设置(web.xml),Hibernate管理服务按...