事务的处理案例

package com.lianxi;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Testzhuan {
    public static void main(String[] args) throws Exception {
        send(1, 2, 1);
    }
    static{
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static void send(int src,int target,int num) throws Exception{
        Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/boooks","root","tiger");
        PreparedStatement ps=null;
        PreparedStatement ps1=null;
        try{
            conn.setAutoCommit(false);
            //先减钱
             ps=conn.prepareStatement("update account set remain=remain-"+num+" where accountid=?");
            ps.setInt(1, src);
            ps.execute();
            int i=9/0;
            //加钱
             ps1=conn.prepareStatement("update account set remain=remain+"+num+" where accountid=?");
            ps1.setInt(1, target);
            ps1.execute();
            conn.commit();
        }catch(Exception e){
            conn.rollback();
            System.out.println("转账失败");
        }finally{
            ps.close();
            ps1.close();
            conn.close();
        }

    }

}
时间: 2024-10-25 15:05:15

事务的处理案例的相关文章

spring框架学习笔记7:事务管理及案例

Spring提供了一套管理项目中的事务的机制 以前写过一篇简单的介绍事务的随笔:http://www.cnblogs.com/xuyiqing/p/8430214.html 还有一篇Hibernate的事务管理:http://www.cnblogs.com/xuyiqing/p/8449167.html 可以做个对比 Spring管理事务特有的属性: 事务传播行为:事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行. 例

24Spring_事务管理机制

第一部分:Spring事务管理高层抽象接口 我们介绍三个接口:1.PlatformTransactionManager 2.TransactionDefinition  3.TransactionStatus PlatformTransactionManager 平台事务管理器 使用Spring管理事务,需要为不同持久层技术实现,提供不同事务管理器(实现类).下面给一个PlatformTransactionManager的实现类的表. 这个表格的左侧的事务都是PlatformTransactio

【JAVAWEB学习笔记】19_事务

事务 学习目标 案例-完成转账 一.事务概述 1.什么是事务 一件事情有n个组成单元 要不这n个组成单元同时成功 要不n个单元就同时失败 就是将n个组成单元放到一个事务中 2.mysql的事务 默认的事务:一条sql语句就是一个事务 默认就开启事务并提交事务 手动事务: 1)显示的开启一个事务:start transaction 2)事务提交:commit代表从开启事务到事务提交 中间的所有的sql都认为有效   真正的更新数据库 3)事务的回滚:rollback 代表事务的回滚 从开启事务到事

oracle之事务和锁

一.事务 首先,我们先介绍什么是PL/SQL.什么是PL/SQL?PL/SQL也是一种程序语言,叫做过程化程序语言(procedural Language/SQL),PL/SQL是oracle数据库对SQL语句的扩展.在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断,循环等操作实习复杂的功能或者计算的程序语言. 1.事务的介绍与应用. 什么是事务,事务是之一个业务逻辑单元执行的一系列操作,这些操作作为一个整体

事务浅谈一二

基本概念: 原子性.一致性.隔离性.持久性 java中事务: 数据库(JDBC)事务.JTA事务.容器事务 ======================================================= Java中的事务处理 http://blog.163.com/email_zp/blog/static/457231232009110111334895/ Java事务处理总结 http://lavasoft.blog.51cto.com/62575/53815/ =======

MySql学习18----数据库事务---命令使用(02)

本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作.下一篇会讲述如何使用JDBC进行数据库的事务操作. 事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑中,所有的操作要么全部成功,要么全部失败.在各个数据具有特别紧密的联系时,最好是使用数据库的事务来完成逻辑处理. 例如路人甲A给路人甲B转账1000元,对应于如下两条SQL命令: update from account set money=money-1000 where name='A'; upd

Redis之Redis事务

Redis事务的概念: Redis 事务的本质是一组命令的集合.事务支持一次执行多个命令,一个事务中所有命令都会被序列化.在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中. 总结说:redis事务就是一次性.顺序性.排他性的执行一个队列中的一系列命令. Redis事务没有隔离级别的概念: 批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到. Redis不保证原子性:

分布式事务的思考与理解

关于本片随笔 笔者在阅读知乎老刘的文章后有感而写,本文按照自己的观点论述了分布式事务 侵删 ------------------------------------------------------------------- 本地事务 ACID特性 A Atomicity 原子性 C Consistency 一致性 I Isolation 隔离性 D Durability 持久性 一致性是最基本的特性,其他三个特性都是为了保持一致性存在的. 分布式事务 集群 核心:分担请求的压力 多台计算机进

C#开发微信门户及应用(47) - 整合Web API、微信后台管理及前端微信小程序的应用方案

在微信开发中,我一直强调需要建立一个比较统一的Web API接口体系,以便实现数据的集中化,这样我们在常规的Web业务系统,Winform业务系统.微信应用.微信小程序.APP等方面,都可以直接调用基于JSON数据格式的Web API接口,在我之前的几篇随笔中,对这方面都有一定的介绍,本篇继续这个主题,细致深入的阐述如何在接口和源码的基础上整合Web API.微信后台管理及前端微信小程序的应用方案. 1.基于Web API的微信开发框架 首先我们各个业务模块,都应该围绕着Web API进行展开,