jdbc实现事务

//conn需要自己获取,这里我用的时springjdbcTemplate        Connection conn = null;
        PreparedStatement pstm = null;
        try
        {
            conn = jdbc.getDataSource().getConnection();
        } catch (SQLException e1)
        {
            log.error(e1.getMessage());
            return "服务器错误!";
        }
        FatherModule firstErrorFatherModule = null;
        String sql = null;
        try
        {
            for(FatherModule fatherModule :  fatherModules)
            {
                firstErrorFatherModule = fatherModule;
                sql = "update sfk_father_module t set t.sort = ? where t.id = ?;";
                pstm = conn.prepareStatement(sql);

                pstm.setInt(1, fatherModule.getSort());//注意从1开始
                pstm.setLong(2, fatherModule.getId());
                pstm.executeUpdate();//注意这里为空

            }
            conn.commit();
        } catch (SQLException e)
        {
            log.error(e.getMessage());
            try
            {
                conn.rollback();
            } catch (SQLException e1)
            {
               log.error("后台错误");
            }
            return "sortId = "+firstErrorFatherModule.getSort();
        }
        finally
        {
            if(pstm!=null)
            {
                try
                {
                    pstm.close();
                } catch (SQLException e)
                {
                    log.error(e.getMessage());
                }
            }

            if(conn!=null)
            {
                try
                {
                    conn.close();
                } catch (SQLException e)
                {
                    log.error(e.getMessage());
                }
            }
        }

        return null;
    
时间: 2024-10-28 22:19:11

jdbc实现事务的相关文章

Java中JDBC的事务问题

事务 l  事务的四大特性:ACID: l  mysql中操作事务 l  jdbc中操作事务 事务概述 为了方便演示事务,我们需要创建一个account表: CREATE TABLE account(          id INT PRIMARY KEY AUTO_INCREMENT,          NAME VARCHAR(30),          balance NUMERIC(10.2) );   INSERT INTO account(NAME,balance) VALUES('

[疯狂Java]JDBC:事务管理、中间点、批量更新

1. 数据库事务的概念: 1) 事务的目的就是为了保证数据库中数据的完整性: 2) 设想一个银行转账的过程,如果分两步,第一步是A的账户-1000,第二步是B的账户+1000,这两个动作必须是连贯的,如果中间断开(出现故障等)比如第一步执行完之后发生异常而终止了操作,那么A就白扣了1000,而B的账户也没有钱增加,这就发生了非常严重的错误: !!以上这个案例可以看出: a. 这两步必须是连贯的,一起合成的,应该作为一个整体逻辑执行单元来执行: b. 如果两步顺利执行完毕那么数据就是完整的,如果中

【JDBC】事务的使用

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5868750.html 关于事务的理论知识.ACID特性等等,网上太多了,在此不一一重复.本文主要着重  事务  这个工具在实际编程中是怎么实现的. 在MySQL命令行的默认设置下,事务都是自动提交的,即执行SQL语句后就会马上执行COMMIT操作,每一个SQL语句都被认为是一个完整的事务处理. 而我们想要实现事务,即:执行多句SQL语句,再最终一起提交或在出错时撤销(SQL语句要么提交,要么撤销.提交则对数

Spring总结——AOP、JDBC和事务的总结

1.上一次总结了 Spring 的核心三大组件(Core,Beans,Context),今天总结的 AOP.JDBC和事务都可以看成是核心三大组件的应用. 其中 Spring 的事务管理又以 AOP 为基础的声明式事务管理,对 JDBC 数据操作进行了补充. 2.在学习 AOP 的时候,需要搞明白的几个问题. (1)AOP 是以动态代理为基础的,所以在学习 AOP 之前,首先对动态代理有深刻的理解. (2)AOP 和切面是什么关系. (3)AOP 中概念比较多,明白每个名词的含义:切面.增强.代

JDBC高级-事务

(一)什么是事务 事务:是数据库的概念,逻辑上的一组操作,组成这级操作的各个单元,要么全部成功,要么全部失败. 主要是针对批量的insert.update.delete语句 (二)事务的作用 保证多条SQL的数据变更,要么全部成功,要么全部失败. 在实际业务场景里,通常会遇到一些特殊的业务:这些业务需要由多条SQL操作来一起完成.如果没有事务,那么每执行一条SQL,数据变更会立即生效:但是如果在执行过程中,某一条SQL执行失败或者出现了异常,前边的SQL变更已经生效,但是后边的SQL就不执行了,

JDBC 入门 - 事务

Transaction(事务) 事务简介 事务的作用是保护数据完整性.它将一系列操作作为一个原子操作来处理, 从而防止多个操作中有的操作失败有的操作成功, 造成数据不完整. 在 JDBC 中, 一个连接默认的提交方式是 Auto-Commit 模式, 在这种模式下, 每个单独的SQL语句都会被视为一个事务, 当SQL执行时(更确切的说是完成时,详见 这里), 就会被提交到数据库. 然而, 在要求多个 SQL 同时成功或者失败的数据完整性问题时, 这种模式不能满足需要. 禁用 Auto-Commi

jdbc的事务开启

在这篇文章的基础上进行修改,标红的部分表示添加的代码,同时附有注解解释. http://www.cnblogs.com/xyyz/p/7119076.html 1 package com.xyyz.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 8 import com

Java -- JDBC 学习--事务

数据库事务 在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态.为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态. 事务的操作:先定义开始一个事务,然后对数据作修改操作,这时如果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃所作的所有修改而回到开始事务时的状态. 事务的

JDBC: 处理事务 & 事务的隔离级别

一.数据库事务 在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态. 为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态. 事务的操作:先定义开始一个事务,然后对数据作修改操作,这时如果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃所作的所有修改而回到开始事务时的状态.

JDBC使用事务实例

package qddx.JDBC; import java.sql.*; public class useTransaction { public static void main(String[] args) { // TODO Auto-generated method stub Connection conn = null; Statement st = null; PreparedStatement pst = null; ResultSet rs = null; Savepoint