• 8.24 事务处理


    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.Calendar;
    
    import com.gem.demo.util.JDBCUtil;
    
    /**
     *
     * Title: Demo03
     *
     * Description: 
     * JDBC事务
     * @version v0.01
     *
     * @author ByChai
     *
     * @date 2020年8月24日 下午2:23:25
     *
     *
     */
    public class Demo03 {
            public static void main(String[] args) {
                Connection conn=null;
                PreparedStatement psmt=null;
                try {
                    conn=JDBCUtil.getConnection();
                    //取消事务自动提交
                    conn.setAutoCommit(false);
                    //转账  账户1-->账户2  转账500
                    String sql="update account set balance=balance-? where username=? and pwd=?";
                    psmt=conn.prepareStatement(sql);
                    //账户1   甲账户 扣款500
                    psmt.setDouble(1, 500);
                    psmt.setString(2, "10001");
                    psmt.setString(3, "123456");
                    psmt.executeUpdate();
                    
                    //模拟灾难发生
                    zainanlailing();
                    //账户2  乙账户  收到500
                    psmt.setDouble(1, -500);
                    psmt.setString(2, "10002");
                    psmt.setString(3, "123123");
                    psmt.executeUpdate();
                    //提交事务
                    conn.commit();
                    
                } catch (Exception e) {
                    if(conn!=null) {
                        try {
                            //事务回滚 Connection 
                            conn.rollback();
                        } catch (SQLException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                    }
                }
            }
            
            public static void zainanlailing() {
                //获取当前秒数
                Calendar c=Calendar.getInstance();
                //如果当前时间秒数>30  表示有灾难发生  抛异常  throw
                int second=c.get(Calendar.SECOND);
                if(second>30) {
                    //触发异常
                    System.out.println("有异常");
                    throw new RuntimeException("灾难降临。。。");
                }
            }
    }

    事务处理

  • 相关阅读:
    ubuntu如何以删除文件夹?
    Ubuntu下安装lrzsz
    SSH服务器拒绝密码检测
    ubuntu下安装、启动和卸载SSH
    VirtualBox下Ubuntu利用桥接方式上网
    Python网络编程笔记二
    Python网络编程笔记一
    Python反射笔记
    Python之time模块和datatime模块
    Python正则表达式之findall疑点
  • 原文地址:https://www.cnblogs.com/Guang09/p/13553913.html
Copyright © 2020-2023  润新知