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("转账完毕!");
            }
        }

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

  • 相关阅读:
    程序员面试金典题解
    Leetcode 解题报告
    常用小算法
    BestCoder 百度之星2016
    jQuery 删除或是清空某个HTML元素。
    dataTable 默认排序设定
    jquery tableExport 插件导出excel (无乱码) 比较简单的表格
    php 根据周数获取当周的开始日期与最后日期
    thinkphp5使用load和use引入第三方类
    判断checkbox是否选中
  • 原文地址:https://www.cnblogs.com/YangGC/p/8849343.html
Copyright © 2011-2022 走看看