我是靠谱客的博主 鲜艳热狗,最近开发中收集的这篇文章主要介绍java jdbc实现事务_JDBC之事务(代码实现),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

事务 指的是逻辑上的一组操作,组成这组操作各个逻辑单元要么全都成功,要么全都失败。  通过模拟转账实现  数据库准备

create database account;

use account;

create table money(

id int primary key auto_increment,

name varchar(10),

money double

);

insert into money values (null,'aaa',10000);

insert into money values (null,'bbb',10000);

insert into money values (null,'ccc',10000);

Java代码实现

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import org.junit.Test;

/*

* 添加事务管理:模拟转账

*/

public class JDBC_transaction {

@Test

/**

* 完成转账的案例

*/

public void demo1(){

Connection conn = null;

PreparedStatement pstmt  = null;

try{

/**

* 完成转账代码:

* 1.扣除某个账号的钱

* 2.给另外一个账号加钱

*/

// 获得连接:

conn = JDBCUtil.getConnection();

// 开启事务

conn.setAutoCommit(false);

// 编写SQL语句:

String sql = "update money set money = money + ? where name = ?";

// 预编译SQL:

pstmt = conn.prepareStatement(sql);

// 设置参数:

// 用aaa账号给bbb账号转1000元

pstmt.setDouble(1, -1000);

pstmt.setString(2, "aaa");

// 执行SQL:扣除aaa账号1000元

pstmt.executeUpdate();

//可以加入一个异常用于测试

//int i = 1 / 0;

// 给bbb账号加1000

pstmt.setDouble(1, 1000);

pstmt.setString(2, "bbb");

pstmt.executeUpdate();

// 提交事务:

conn.commit();

}catch(Exception e){

// 回滚事务:

try {

conn.rollback();

} catch (SQLException e1) {

e1.printStackTrace();

}

e.printStackTrace();

}finally{

JDBCUtil.release(pstmt, conn);

}

}

}

最后

以上就是鲜艳热狗为你收集整理的java jdbc实现事务_JDBC之事务(代码实现)的全部内容,希望文章能够帮你解决java jdbc实现事务_JDBC之事务(代码实现)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部