JDBC默认的事务机制

JDBC事务机制

jdbc中的事务是默认提交的。

运行前的数据库数据:

JDBC默认的事务机制

代码:

package com.happy.lesson1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.ResourceBundle;

public class JDBCTest10 {
    public static void main(String[] args) throws Exception {
        ResourceBundle bundle = ResourceBundle.getBundle("JDBC");
        String driver = bundle.getString("driver");
        String url = bundle.getString("url");
        String user = bundle.getString("user");
        String password = bundle.getString("password");
        //1.注册驱动
        Class.forName(driver);

        //2.获取连接
        Connection conn = DriverManager.getConnection(url,user,password);

        //3.获取数据库操作对象
        String sql = "update t_act set balance = ? where actno = ?";//处理sql语句
        PreparedStatement ps = conn.prepareStatement(sql);

        //传值
        //111转账10000元给222
        ps.setDouble(1,10000);
        ps.setInt(2,111);
        //4.1执行sql
        int count = ps.executeUpdate();

        //发生异常
        int e = 1/0;

        //222收到转账10000元
        ps.setDouble(1,10000);
        ps.setInt(2,222);
        //4.2执行sql
        count += ps.executeUpdate();

        //5.处理结果集
        System.out.println((count==2)?"转账成功":"转账失败");
        //6.关闭资源
        ps.close();
        conn.close();
    }
}

运行后的数据库数据:

JDBC默认的事务机制

运行有异常,然而数据库数据发生了变化,111丢失了10000元,但是222却没收到钱。

上一篇:硬件黑客之无线电 --- YARD Stick One Bundle


下一篇:Bundle的遍历方法