zoukankan      html  css  js  c++  java
  • Jdbc事务管理

    JDBC事务机制

    首先得到数据库的连接(之前已经写过了)这也是最基本的

    JDBC事务是默认提交的,要想了解可以设置为非自动提交 数据库连接里面有个方法是setAutoCommit(boolean autoCommit)

    当设置为false的时候需要手动提交。

    设置手动提交之后 多条sql操作可以属于一个事务,要成功多条都能成功、要是失败都会回滚。

    也可以设置一个savePoint()对于某个操作进行回滚,

    eg:

     1 public static void add(){
     2         conn = ConnectionUtils.getConnection();
     3         try {
     4             conn.setAutoCommit(false);
     5         } catch (SQLException e1) {
     6             e1.printStackTrace();
     7         }
     8         String sql = "insert into user (username,password,contract,address) values('张三','123','1ssssad','河岸扶沟')";
     9         try {
    10             
    11             ps = conn.prepareStatement(sql);
    12             ps.executeUpdate();
    13         } catch (SQLException e) {
    14             e.printStackTrace();
    15         }
    16         
    17         Savepoint save = null;
    18         try {
    19             save = conn.setSavepoint();
    20         } catch (SQLException e1) {
    21             e1.printStackTrace();
    22         }
    23         
    24         String sql2 ="insert into province (provience)values('测试')";
    25         
    26         try {
    27             ps = conn.prepareStatement(sql2);
    28             ps.executeUpdate();
    29         } catch (SQLException e) {
    30             e.printStackTrace();
    31         }
    32         try {
    33             conn.rollback(save);
    34             conn.commit();
    35         } catch (SQLException e) {
    36             e.printStackTrace();
    37         }
    38     }  
    View Code

    回滚之后第一个操作已经回滚了,第二个操作提交了

    如果你没有设置存储点,会回滚到设置禁止事务自动提交的地方,

    因为是先设置禁止自动提交的然后才执行sql语句的,所以会回滚到所有执行的这几个sql语句前的状态。

  • 相关阅读:
    “5W1H”带你来学习JavaScript
    [windows+cocos2dx]文本类
    server后台TCP连接存活问题
    (七):处理MFC
    Servlet中的request对象、重定向和转发的差别(6)
    ORACLE 存储函数
    【@伏草惟存@】7年系列博文精选
    笔记14:Docker 部署Python项目
    笔记13:Python 和 Elasticsearch 构建简易搜索
    笔试12:Bootstrap知识
  • 原文地址:https://www.cnblogs.com/hujia/p/3326589.html
Copyright © 2011-2022 走看看