`
summersun_ym
  • 浏览: 15075 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

spring编程式事物

阅读更多
spring配置文件:
<?xml version="1.0" encoding="GB2312"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://toolkit.alibaba-inc.com/dtd/spring/spring-beans.dtd">

<beans>

   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
       <property name="driverClassName" value="com.mysql.jdbc.Driver" />
       <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8" />
       <property name="username" value="root" />
       <property name="password" value="admin"/>
   </bean>
    
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource">
            <ref local="dataSource"/>
        </property>
    </bean>
    
    <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
        <property name="transactionManager">
            <ref local="transactionManager"/>
        </property>
    </bean>

    
	<!-- ======================================================================== -->
	<!--  iBatis SQL map定义														  -->
	<!-- ======================================================================== -->
	<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:com/igoolu/test/sqlmap-config.xml" />
        <property name="sqlMapClientProperties">
            <map>
                <entry key="baseurl">
                    <bean class="com.alibaba.service.spring.support.GetResourceAsURL">
                        <property name="location" value="classpath:com/igoolu/test/sqlmap-config.xml"/>
                        <property name="parent" value="true"/>
                    </bean>
                </entry>
            </map>
        </property>
	</bean>
    
    <bean id="queryDao" class="com.taobao.dw.dal.query.dao.ibatis.IbatisGenericDaoImpl">
		<property name="sqlMapClient">
			<ref bean="sqlMapClient" />
		</property>
	</bean>

</beans>




java测试代码:

import java.sql.SQLException;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;
import org.springframework.transaction.support.TransactionTemplate;

import com.ibatis.sqlmap.client.SqlMapClient;

/**
 * TODO Comment of MainTest
 *
 * @author summersun_ym
 * @version $Id: MainTest.java 2010-11-26 下午11:48:37 $
 *
 */
public class MainTest {
    public ApplicationContext context = null;
    /**
     * @param args
     * @throws SQLException 
     */
    public static void main(String[] args) throws SQLException {
        MainTest test = new MainTest();
        test.init();
        test.test();
    }

    public void init() {
        context = new ClassPathXmlApplicationContext("com/igoolu/test/spring-beans.xml");
    }
    
    public void test() throws SQLException {
        TransactionTemplate transactionTemplate = (TransactionTemplate)context.getBean("transactionTemplate");
        final SqlMapClient sqlMapClient = (SqlMapClient)context.getBean("sqlMapClient");
        
        //final GenericDao queryDao = (GenericDao)context.getBean("queryDao");
        /** 事物入口 */
        transactionTemplate.execute(new TransactionCallback() {
            /** 这里执行业务逻辑 */
            public Object doInTransaction(TransactionStatus status) {
                try {
                    sqlMapClient.insert("Test.insert_count"); //成功语句
                    
                    sqlMapClient.insert("Test.insert_count11"); //失败语句
                } catch (SQLException e) {
                    e.printStackTrace();
                }

                return null;
            }
        });


    }
}
分享到:
评论

相关推荐

    spring编程式事务实现

    1. **Spring编程式事务管理**: 编程式事务管理允许开发者在代码中直接控制事务的开始、提交、回滚等操作。这种方式提供了更大的灵活性,但可能导致事务管理代码分散在整个应用中,增加维护难度。通常,这种方式...

    spring编程式事务与声明式事务详解

    Spring 编程式事务与声明式事务详解 本文将详细解释 Spring 的编程式事务管理及声明式事务管理,帮助读者理清思路。 事务管理的重要性 事务管理对于企业应用至关重要。它保证了用户的每一次操作都是可靠的,即便...

    Spring 声明式事务和Spring 编程式事务

    Spring 声明式事务和Spring 编程式事务

    spring_tx编程式事务代码

    编程式事务管理允许开发者通过代码来精确控制事务的边界,而`TransactionTemplate`就是Spring为编程式事务管理提供的一种便捷工具。 `TransactionTemplate`类是Spring框架的`org.springframework.transaction....

    spring学习笔记(十五)-编程式事务例子

    在本篇“Spring学习笔记(十五)——编程式事务例子”中,我们将深入探讨Spring框架中的编程式事务管理。在实际开发中,我们通常使用声明式事务管理,它基于AOP(面向切面编程)来简化事务处理。然而,有时为了更细...

    全面分析 Spring 的编程式事务管理及声明式事务管理

    本文将全面分析Spring中的编程式事务管理和声明式事务管理,旨在帮助开发者深入理解这两种事务管理方式,并在实际项目中合理选择。 **编程式事务管理** 编程式事务管理是通过代码直接控制事务的开始、提交、回滚等...

    spring编程式事务与声明式事务详解[参照].pdf

    Spring提供了两种主要的事务管理方式:编程式事务管理和声明式事务管理。 **编程式事务管理**是通过编写代码来显式地管理事务的开始、提交、回滚等操作。在Spring中,可以使用PlatformTransactionManager接口的实现...

    跟我学Spring3(9.3)Spring的事务之编程式事

    通过学习这一章节,你将能够熟练掌握Spring编程式事务的使用,理解事务管理的核心原理,并能在实际开发中灵活应用。结合提供的"Java开发Java经验技巧共34页.pdf"文档,你将获得更深入的理论知识和实践经验。同时,...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    本主题将深入探讨Hibernate的编程式事务管理和Spring AOP的声明式事务管理,以及两者如何在实际项目中集成使用。 **Hibernate编程式事务管理** Hibernate作为流行的ORM(对象关系映射)框架,提供了对JDBC事务的...

    Spring源代码解析(六):Spring声明式事务处理.doc

    Spring 中的事务处理可以分为两种方式:声明式事务处理和编程式事务处理。声明式事务处理通过 AOP 的实现,把事务管理代码作为方面封装到业务代码中,使得事务管理代码和业务代码解藕。这使得事务管理变得更加灵活...

    全面分析_Spring_的编程式事务管理及声明式事务管理.

    本篇文章将深入探讨Spring中的两种主要事务管理方式:编程式事务管理和声明式事务管理。 1. 编程式事务管理: 编程式事务管理允许开发者直接在代码中控制事务的开始、提交、回滚等操作。这种方式具有较高的灵活性,...

    spring编程式和声明式事务管理

    在Spring中,声明式事务管理是基于AOP(面向切面编程)实现的。我们只需要在方法上添加@Transactional注解,就可以让Spring自动进行事务管理。例如: ```java @Service public class UserService { @Transactional...

    spring学习之八--Hibernate编程式事务

    在本篇"Spring学习之八--Hibernate编程式事务"中,我们将探讨如何在Spring框架中使用Hibernate进行编程式事务管理。编程式事务管理是相对于声明式事务管理的一种方式,它允许开发者通过代码来显式控制事务的开始、...

    全面分析_Spring_的编程式事务管理及声明式事务管理

    本教程将深入探讨 Spring 的编程式事务管理和声明式事务管理,帮助你理解这两种方式的差异与应用场景。 首先,编程式事务管理依赖于编程的方式显式地控制事务的开始、提交、回滚等操作。它通过实现 `...

    详解Spring学习之编程式事务管理

    详解Spring学习之编程式事务管理 Spring框架中提供了两种事务管理方式:编程式事务管理和声明式事务管理。在本篇文章中,我们主要介绍编程式事务管理。 什么是编程式事务管理? 编程式事务管理是指通过编写代码...

    spring 自定义事务管理器,编程式事务,声明式事务@Transactional使用

    本教程将深入探讨如何在Spring中实现自定义事务管理器、编程式事务处理以及声明式事务`@Transactional`的使用。 首先,让我们了解事务管理的基本概念。事务是一组数据库操作,这些操作要么全部执行,要么全部回滚,...

    Spring声明式事务处理

    在Spring中,事务管理分为编程式和声明式两种方式,而声明式事务处理则是通过配置来控制事务的行为,使得代码与事务逻辑解耦,提高了代码的可读性和可维护性。 首先,我们要理解什么是事务。事务是数据库操作的一组...

Global site tag (gtag.js) - Google Analytics