zoukankan      html  css  js  c++  java
  • [核心代码] 存取钱以及数据库记录日志的解决方案

    银行存取钱,以及记录时间的核心代码!!!

    废话不说,上码!!!

    package cn.yanggc.app;
    
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.ScalarHandler;
    
    import cn.yanggc.tools.JDBCUtils;
    
    
    
    public class MainApp {
    
        public static void main(String[] args) throws SQLException {
            QueryRunner qr = new QueryRunner();
            Connection conn = JDBCUtils.getConnection();
            try {
                conn.setAutoCommit(false);
            } catch (SQLException e) {
                e.printStackTrace();
                return;
            }
            //设置变量:
            double tranMoney = 600000;
            //查询转出账户是否有足够余额
            String sql = "select balance from account  where cardid = '6212999999999'";
            Double balance;
            try {
                balance = (Double) qr.query(conn, sql, new ScalarHandler());
                if(balance < tranMoney){
                    System.out.println("转出方余额不足:" + tranMoney + " 万元");
                    conn.setAutoCommit(true);
                    return;
                }
                //处理转出账户
                sql = "update account set balance = balance - " + tranMoney + " where cardid = '6212999999999'";
                qr.update(conn, sql);
                //处理利率
                sql = "select balance from account where cardid = '6212999999999'";
                balance = (Double) qr.query(conn, sql, new ScalarHandler());
    
                if(balance < 15000000){
                    sql = "update account set moneyrate = 2.5 where cardid = '6212999999999'";
                    qr.update(conn, sql);
                }else{
                    sql = "update account set moneyrate = 2.8 where cardid = '6212999999999'";
                    qr.update(conn, sql);
                }
                //处理转入账户
                sql = "update account set balance = balance + " + tranMoney + " where cardid = '6212888888888'";
                qr.update(conn, sql);
                //处理利率
                sql = "select balance from account where cardid = '6212888888888'";
                balance = (Double) qr.query(conn, sql, new ScalarHandler());
                if(balance >= 15000000){
                    sql = "update account set moneyrate = 2.8 where cardid = '6212888888888'";
                    qr.update(conn, sql);
                }else {
                    sql = "update account set moneyrate = 2.5 where cardid = '6212888888888'";
                    qr.update(conn, sql);
                }
                //处理交易记录表
                String dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
    
                sql = "insert into transaction values(null,'6212999999999','转出'," + tranMoney + ",'" + dateStr + "')";
                qr.update(conn, sql);
                sql = "insert into transaction values(null,'6212888888888','转入'," + tranMoney + ",'" + dateStr + "')";
                qr.update(conn, sql);
                conn.commit();
            } catch (SQLException e) {
                try {
                    conn.rollback();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
                return;
            }finally{
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
    
            }
    
            System.out.println("转账完毕!");
            }
        }

    三个处理数据库的核心代码

  • 相关阅读:
    增强for循环用法___ArrayList数组实现使用下标最好,LinkedList使用增强型的(转载)
    Java类加载的时机_4种主动引用会触犯类加载+剩下的被动引用不会触发类的加载
    剑指offer_面试题11 数值的整数次方_考察代码的完整性
    深入理解Java虚拟机博客参考目录
    GPU总结(1)
    牛客_Java_值传递(拷贝)不该表原来变量+传引用的话会一起改变
    Java 源码学习线路————_先JDK工具包集合_再core包,也就是String、StringBuffer等_Java IO类库
    centos7 安装jdk1.8
    JPA
    javaScript获取url中的参数
  • 原文地址:https://www.cnblogs.com/YangGC/p/8849343.html
Copyright © 2011-2022 走看看