[核心代码] 存取钱以及数据库记录日志的解决方案

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

废话不说,上码!!!

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

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

原文地址:https://www.cnblogs.com/YangGC/p/8849343.html