JDBC数据库事务管理

JDBC控制事务

  1. 使用Connection对象来管理事务

开启事务 :setAutoCommit(boolean autoCommit):调用该方法设置参数为false,即可开启事务
提交事务:commit()
回滚事务: rollback

转账案例

package cn.itcats;

import cn.Utils.JDBCutils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * JDBC控制事务
 * 1.使用Connection对象来管理事务
 *      开启事务 :setAutoCommit(boolean autoCommit):调用该方法设置参数为false,即可开启事务
 *      提交事务:commit()
 *      回滚事务: rollback
 *      转账案例
 *
 */


public class JDBCdemo07 {
    public static void main(String[] args) {

        Connection conn =null;
        PreparedStatement pre1 =null;
        PreparedStatement pre2 =null;

        try {
             conn = JDBCutils.getConnection();
             //开启事务
            conn.setAutoCommit(false);
            String sql1 = "update user  set  balance =balance + ?  where username = ?";
            String sql2 = "update user  set  balance =balance - ? where username = ?";
            //获取执行对象
             pre1 = conn.prepareStatement(sql1);
             pre2 = conn.prepareStatement(sql2);


            pre1.setInt(1,500);
            pre1.setString(2,"佩奇");

            pre1.setInt(1,500);
            pre1.setString(2,"乔恩");

            //执行
            int i = pre1.executeUpdate();
            pre2.executeUpdate();

            System.out.println(i);
            //提交事务
            conn.commit();
        } catch (Exception e) {
            //事务回滚
            try {
                conn.rollback();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
            e.printStackTrace();
        }finally{
            JDBCutils.close(pre1,conn);
            try {
                pre2.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值