当前位置:首页 > 开发 > 编程语言 > Spring > 正文

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

发表于: 2012-07-27   作者:blackproof   来源:转载   浏览次数:
摘要: spring入门实例-DAO,事务 实例使用代理模式,使用DAO,并且添加事务功能 配置文件: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc

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,声明事务

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
本文基于SPRING2.56,HIBERANTE3.25及Oracle10g classes14.jar驱动,介绍SPRING与HIBERNATE是如何配
Spring的声明式事务管理是通过Spring AOP实现的,默认情况下,Spring事务只在遇见RuntimeException
Spring的声明式事务管理是通过Spring AOP实现的,默认情况下,Spring事务只在遇见RuntimeException
声明式事务   声明式事务(Programmatic transaction management)是Spring提供的对程序事务管理的
很好的一片文章,转自【http://sishuok.com/forum/blogPost/list/2506.html】 9.3 编程式事务 9.3.1
声明式事务   声明式事务(Programmatic transaction management)是Spring提供的对程序事务管理的
项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可
Spring的声明式事务管理是通过Spring AOP实现的,默认情况下,Spring事务只在遇见RuntimeException
class A { public void addA() { // something... } public void addB() { // something... } publi
问题: 在项目开发中遇到了一个spring事务失效的问题,检查配置文档,都没有问题,其他的类中的方法
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号