• JDBC事物的处理


    JDBC事物的处理:

    概念:事务是指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。

    数据库开启事务命令:

    start transaction  开启事务

    Rollback  回滚事务

    Commit   提交事务

    事物的使用:

    JDBC控制事务语句

    Connection.setAutoCommit(false); //  相当于mysql语句的start transaction

    Connection.rollback(); //  相当于mysql语句的 rollback

    Connection.commit(); //  相当于mysql语句的 commit
    -----------------------------------------------------------------------------------

    代码如下:

     1 package com.aaa.demo1;
     2 
     3 
     4 import com.aaa.demo.JdbcUtils;
     5 
     6 import java.sql.Connection;
     7 import java.sql.PreparedStatement;
     8 import java.sql.SQLException;
     9 
    10 public class DemoTranscation {
    11     public static void main(String[] args) {
    12         Connection conn = null;
    13         PreparedStatement ps = null;
    14 //        1 获取链接
    15         try {
    16             conn = JdbcUtils.getConnectio();
    17             //2 开启事物
    18            conn.setAutoCommit(false);
    19 //        3 获取PreparedStatement
    20             ps = conn.prepareStatement("UPDATE count SET money = money-? WHERE cname =?");
    21 
    22 
    23 //        4 使用PreparedStatement 两次更新操作
    24             ps.setDouble(1, 500);
    25             ps.setString(2, "樱花落");
    26             ps.executeUpdate();
    27             System.out.println(111 / 0);
    28             ps = conn.prepareStatement("UPDATE count SET money = money+? WHERE cname =?");
    29             ps.setDouble(1, 500);
    30             ps.setString(2, "洛天依");
    31             ps.executeUpdate();
    32             //提交事物
    33 
    34            // System.out.println("转账成功");
    35             //conn.commit();
    36 
    37         } catch (Exception e) {
    38             //事物回滚
    39             try {
    40                 conn.rollback();
    41             } catch (SQLException e1) {
    42                 e1.printStackTrace();
    43             }
    44             System.out.println("转账失败");
    45         } finally {
    46             //关资源
    47             JdbcUtils.close( conn,ps);
    48 
    49         }
    50 
    51     }
    52 }
  • 相关阅读:
    MongoDB for OPS 02:复制集 RS 配置
    MongoDB for OPS 01:服务介绍与基本使用
    Redis for OPS 07:Redis 补充说明
    Redis for OPS 06:Redis Cluster 集群
    google ctemplate——c++模板引擎
    libctemplate——源码分析
    使用gulp对js、css、img进行合并压缩
    Windows平台交叉编译Arm Linux平台的QT5.7库
    使用gtest对DLL工程进行单元测试的实践
    websocket++简单使用例子
  • 原文地址:https://www.cnblogs.com/yanpingping/p/10646131.html
Copyright © 2020-2023  润新知