JdbcTemplate使用事务

public int excuteTrac() {
    int temp = 0; //  批插入
    String sql1[] = new String[4];
    //向第一个表插入的语句
    sql1[0] = "insert into usermbo(USERNAME,age,PASSWORD) values(‘ 23  ‘,‘3‘,‘45‘)";
    sql1[1] = "insert into usermbo(USERNAME,age,PASSWORD) values(‘22  ‘,‘22‘,‘22‘)";
    sql1[2] = "insert into usermbo(USERNAME,age,PASSWORD) values(‘ 44  ‘,‘44‘,‘4‘)";
    sql1[3] = "insert into usermbo(USERNAME,age,PASSWORD) values(‘ 55  ‘,‘55‘,‘55‘)";
    String[] sql2 = new String[3];
    //向第二个表插入的语句
    sql2[0] = "insert into address(NO,NAME) values(‘21‘,‘33‘)";
    // 此条数据是错误数据 插入会出现异常
    sql2[1] = "insert into address(NO,NAME) values(‘ee‘,‘44‘)";
    sql2[2] = "insert into address(NO,NAME) values(‘44‘,‘44‘)";

    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(jdbcTemplate.getDataSource());
    TransactionStatus status = transactionManager.getTransaction(def);
    try {
        int[] a = jdbcTemplate.batchUpdate(sql1);
        int[] b = jdbcTemplate.batchUpdate(sql2);
        for (int x : a) {
            System.out.println(x);
        }
        for (int x : b) {
            System.out.println(x);
        }
    } catch (Exception ex) {
        System.out.println("出现事务异常");
        // transactionManager.rollback(status);
        temp = -1;
    } finally {
        transactionManager.commit(status);
    }
    return temp;
}
时间: 2024-11-14 14:14:25

JdbcTemplate使用事务的相关文章

Spring JdbcTemplate 与 事务管理 学习

Spring的JDBC框架能够承担资源管理和异常处理的工作,从而简化我们的JDBC代码, 让我们只需编写从数据库读写数据所必需的代码.Spring把数据访问的样板代码隐藏到模板类之下, 结合Spring的事务管理,可以大大简化我们的代码. Spring提供了3个模板类: JdbcTemplate:Spring里最基本的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问. NamedParameterJdbcTemplate:能够在执行查询时把值绑定到SQL里的命名参数,而不是使

Spring JdbcTemplate 与 事务管理

Spring的JDBC框架能够承担资源管理和异常处理的工作,从而简化我们的JDBC代码, 让我们只需编写从数据库读写数据所必需的代码.Spring把数据访问的样板代码隐藏到模板类之下, 结合Spring的事务管理,可以大大简化我们的代码. Spring提供了3个模板类: JdbcTemplate:Spring里最基本的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问. NamedParameterJdbcTemplate:能够在执行查询时把值绑定到SQL里的命名参数,而不是使

Spring jdbctemplate和事务管理器 全注解配置 不使用xml

/** * spring的配置类,相当于bean.xml */@Configuration//@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的<beans>// 作用为:配置spring容器(应用上下文)@ComponentScan("com.zxh")//需要扫描的包@Import({JdbcConfig.class,TransactionConfig.class})//子配置类@PropertySource("jdbcC

数据库事务管理:掺杂使用entityDao和jdbcTemplate时的问题

代码中有一个较大的事务,需要做多次数据库的增删改等操作. 其中一个新增操作我使用了公司封装的hibernate的entityDao:其它操作使用的是spring提供的jdbcTemplate.二者操作流程基本如下: entityDao.save(写入表1) jdbcTemplate.update(根据entityDao向表1写入的最新数据,更新表2) 结果,entityDao能够正确写入表1:但是jdbcTemplate的更新操作却始终失败(数据库操作正常结束,但应该被更新的数据没有被更新).

【Spring】Spring使用XML配置声明式事务

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一.事务介绍 事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性 事务就是一系列的动作,它们被当作一个单独的工作单元.这些动作要么全部完成,要么全部不起作用. 事务的四个关键属性(ACID) ① 原子性(atomicity):事务室一个原子操作,有一系列动作组成.事务的原子性确保动作要么全部完成,要么完全不起作用② 一致性(consistency):一旦所

spring 配置事务管理器

在Spring中数据库事务是通过PlatformTransactionManager进行管理的,jdbcTemplate是不能支持事务的,而能够支持事务的是org.springframework.transaction.support.TransactionTemplate模板,它是Spring所提供的事务管理器的模板 •事务的创建.提交和回滚是通过PlatformTransactionManager接口来完成的. •当事务产生异常时会回滚事务,在默认的实现中所有的异常都会回滚.我们可以通过配置

Spring注解驱动开发(四)-----aop、声明式事务

AOP 概念 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式:-----基于动态代理 一个aop示例 1.导入aop模块:Spring AOP:(spring-aspects)-----导入相关jar包 2.MathCalculator-----一个业务逻辑的类-----在业务逻辑运行的时候将日志进行打印(方法之前.方法运行结束.方法出现异常,xxx) package com.atguigu.aop; public class MathCalculator { publ

Struts,Spring,Hibernate的作用

Spring的作用: 在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因 为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语 句.Struts是用来做应用层的,他它负责调用业务逻辑serivce层.所以SSH框架的流程大致 是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)struts 负责控制Service(业务逻辑处理类),从而控制了Service的生命

spring在SSH框架中的作用

从网上了搜了下sring 在ssh中起的作用,在百度知道上看到下面的回答,觉得简单移动,记录下来备查,原文地址: http://zhidao.baidu.com/link?url=JiONrax-Flkpi5hqs_g1HQOrMm1Dk8U1WT88l5T0Gg01bm3M8fMcjUCpqastVxQTd63gxUl5NLyHUQPdq6E-OK 在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行