zoukankan      html  css  js  c++  java
  • Java程序中如何使用事物

    在java操作数据库是,为了保证数据的一致性,比如转账操作,从一个账户减掉10元,在另一个账户加上10元。

     

    在类中定义的成员属性(变量)不用赋初值,但在函数里头定义的变量就一定要赋初值。

    package com.test;

    import java.sql.*;

    public class Test {

        public static void main(String[] args) {

            //怎么把多个dml语句看做一个整体事物,统一提交

            Connection ct = null;

            try {

                String sql1="update emp set sal=sal-10 where empno=7369";

                String sql2="update emp set sal=sal+10 where empno=7499";

                //得到一个连接

                ct=SQLHelper.getConnection();

                //把事物设为不自动提交

                ct.setAutoCommit(false);

     

                PreparedStatement ps1=ct.prepareStatement(sql1);

                PreparedStatement ps2=ct.prepareStatement(sql2);

               

                ps1.executeUpdate();

                int i=90/0;

                ps2.executeUpdate();

                //把两个操作看做一个事物统一提交

                ct.commit();

            } catch (Exception e) {

                e.printStackTrace();

                //如果事物出现了异常,我们可以回滚(相当于这个事物所有操作全部取消)

                try {

                    ct.rollback();

                } catch (Exception e1) {

                    e1.printStackTrace();

                }

            }finally{

               

            }

        }

    }

     

    ☞如果一个事物中,只有select,那么事物控制可以忽略,如果一个事物有多个(update、insert、delete)则需要考虑事物。

    思考:如何把事物控制直接封装到SQLHelper这个类中。

  • 相关阅读:
    tcpdump高级过滤
    Flask简单学习
    nginx+keepalived高可用web负载均衡
    Golang基础(5):Go语言反射规则
    Golang基础(4):Go结构体
    分布式SESSION一致性
    JSON WEB TOKEN (JWT)
    Table布局
    GRID布局
    三种方式实现轮播图功能
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11113987.html
Copyright © 2011-2022 走看看