`

spring入门实例-DAO,声明事务

阅读更多

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();
		
	}

}
 

 

 

 

分享到:
评论

相关推荐

    Spring DAO入门实例

    总的来说,这个 Spring DAO 入门实例展示了如何在 Spring 环境下进行基本的数据库操作,包括数据表设计、Java 类映射、DAO 实现、配置文件以及测试。掌握这些基础,将有助于进一步学习和应用 Spring 框架的更多高级...

    Spring-data-jpa常用教程.pdf

    - 通过 `&lt;tx:annotation-driven/&gt;` 标签或相应的 Java 配置启用 Spring 的事务管理功能,这样可以在 Service 层使用 `@Transactional` 注解来声明式地管理事务。 5. **使用 Repository 接口**: - 在 Service 层...

    spring入门实例代码

    在`spring入门实例`中,你可能会看到如何使用`@Autowired`注解来自动装配数据源,以及如何通过`@Repository`注解创建DAO层的bean。 事务管理也是Spring的一大亮点。Spring支持编程式和声明式事务管理。声明式事务...

    spring data jpa入门实例

    【Spring Data JPA 入门实例】 Spring Data JPA 是 Spring 框架的一个模块,它简化了数据库访问层(DAO)的开发,通过提供自动化的 Repository 实现,使得开发者无需编写大量的 CRUD(创建、读取、更新、删除)代码...

    dbApi-spring-boot-starter-demo:dbApi-spring-boot-starter案例代码

    "dbApi-spring-boot-starter-demo-master"是一个完整的实例项目,它展示了如何集成和使用dbApi-spring-boot-starter。主要包含以下几个部分: 1. 主配置:分析项目的主配置文件,了解如何配置数据库连接以及启动器...

    spring菜鸟入门经典实例

    在Spring入门阶段,首先要理解的是依赖注入(DI)。DI是一种设计模式,它允许我们解耦组件,让它们之间通过接口而非具体的实现进行交互。Spring通过容器管理对象的生命周期和依赖关系,我们只需要配置好bean的定义,...

    非注解Springmvc+spring+hibernate 入门实例

    下面我们将深入探讨"非注解SpringMVC+Spring+Hibernate入门实例"中的关键知识点。 首先,让我们从SpringMVC开始。SpringMVC是一个Model-View-Controller架构模式的实现,用于构建Web应用程序。在非注解方式下,我们...

    javastruts2入门学习实例--用户注册和用户登录整合.rar

    这个入门实例通过实际操作,帮助初学者理解Struts2框架的运作方式,以及如何将它应用到实际的用户注册和登录功能中。通过学习和实践,开发者可以更好地掌握Java Web开发的基本技能,并为更复杂的项目打下坚实的基础...

    mybatis-spring-1.0.2-reference.pdf

    容器管理事务是指由应用服务器或Spring容器本身管理事务,适用于那些不希望在业务逻辑中显式控制事务的场景。 ##### 4.3 编程式事务管理 对于需要更细粒度控制的场景,MyBatis-Spring提供了编程式事务管理的支持,...

    struts2 hibernate spring整合入门(附实例源码及jarbao--用户名字段的操作)

    在整合Spring时,Struts2可以利用Spring的依赖注入(DI)特性,将Service层对象注入到Action中,使得Action无需手动创建Service实例。 接下来,Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作。在本...

    spring3.0mvc自学教程ppt+注解教程+注解实例+springmybatis教程+项目实例+中文api (老师的心血)从入门到项目实战

    4. **Spring与MyBatis整合**:Spring MyBatis教程会讲解如何将Spring的依赖注入和事务管理与MyBatis的SQL映射相结合,实现更灵活的数据访问。这包括配置MyBatis的SqlSessionFactory,创建Mapper接口,以及使用`@...

    spring入门实例

    3. **面向切面编程(Aspect-Oriented Programming, AOP)**:Spring提供了AOP支持,允许开发者将关注点(如日志、事务管理)与业务逻辑分离,实现代码的模块化和解耦。 4. **数据访问集成**:Spring支持多种数据库...

    Spring2+实例

    描述中提到的“添加用户实例”是Spring框架中一个常见的应用场景,通常涉及到数据持久化、事务管理和验证。在Spring 2.x中,我们可以使用Spring JDBC或Hibernate等ORM工具来与数据库交互,实现用户数据的增删改查。...

    Spring入门教程.pdf

    ### Spring入门教程知识点详解 #### 一、理论知识 ##### 1. 依赖注入与控制反转 - **依赖注入**(Dependency Injection, DI):在应用程序的运行期间,由外部容器(例如Spring容器)动态地将一个对象所依赖的其他...

    Spring框架笔记-搭建-基础理论--面试.pdf

    Spring框架覆盖了Java EE架构的每一层,主要包括web层的Spring MVC、Service层的Bean管理和声明式事务管理、以及DAO层的JDBC模板和ORM框架整合。通过Spring框架的应用,开发者可以使用其提供的各种功能模块和工具来...

    spring data jpa 入门例子

    Spring Data JPA支持声明式事务管理。通过在Service层的方法上添加`@Transactional`注解,可以开启一个事务,确保一组数据库操作要么全部成功,要么全部回滚。 9. **其他高级特性** Spring Data JPA还支持分页...

    struts2+hibernate3.2+spring2.0配置+入门实例

    【Struts2+Hibernate3.2+Spring2.0配置+入门实例】 本文将详细介绍如何配置和构建一个基于Struts2、Hibernate3.2和Spring2.0的企业级Java应用入门实例。首先,我们理解整体架构,这有助于我们更好地了解各个组件的...

    spring mvc+hibernate 简单 实例 代码,新手入门

    - 通过 Spring 的声明式事务管理,可以在配置文件中定义事务边界,简化事务处理。 - 使用 Spring 的 DataSource 和 SessionFactory 配置,以便在 Spring 环境下管理 Hibernate 连接和会话。 - 将 Hibernate 的 ...

    spring+struts+hibernate+dwr+jstl做的实例

    结合spring struts hibernate dwr jstl做的实例,struts hibernate dwr 与Spring完全结合,实现用户列表、信息增、删、改、查、维护时用户重名提示等功能,还包括页面自动转码设置(web.xml),Hibernate管理服务按...

Global site tag (gtag.js) - Google Analytics