银行交易系统 BankSystemFunction

    xiaoxiao2026-03-05  10

    package jdbc.eduask.banksystem;

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.text.DateFormat; import java.text.DecimalFormat; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Random; import java.util.Scanner;

    import oracle.net.aso.p;

    /* * */ //测试oracle数据库Myeclipse; public class BankSystemFunction { // 开户功能; /* * 判断开户金额-产生一个随机号-添加客户表信息-添加银行卡信息-添加开卡信息到交易表-开卡成功; */ public static void openAnAccount(Connection conn) throws Exception { System.out.println("你好!欢迎进入开卡业务!请认真填写如下信息!"); Scanner openInput = new Scanner(System.in); System.out.println("请输入你的开卡金额"); int openMoney = openInput.nextInt(); if (openMoney >= 10) { // 产生一随机数 1-1000; int numberRandom = (int) (Math.random() * 1000 + 1); System.out.println("-------------请填写客户表信息-------------"); System.out.println("请输入你的用户名"); String clientName = openInput.next(); System.out.println("请输入省份证号码"); String PID = openInput.next(); System.out.println("请输入你的性别"); String sex = openInput.next(); System.out.println("请输入你的出生日期"); String birthday = openInput.next(); Calendar cal = Calendar.getInstance(); // 日期类 java.sql.Timestamp timestampnow = new java.sql.Timestamp( cal.getTimeInMillis());// 转换成正常的日期格式 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); ParsePosition pos = new ParsePosition(0); java.util.Date current = formatter.parse(birthday, pos); timestampnow = new java.sql.Timestamp(current.getTime()); System.out.println("请输入你的籍贯"); String myNative = openInput.next(); System.out.println("请输入你的家庭地址"); String address = openInput.next(); System.out.println("请输入你的联系电话"); String telephone = openInput.next(); String sql = "insert into clientInfo values(?,?,?,?,?,?,?,?)"; PreparedStatement ps=null; ps = conn.prepareStatement(sql); ps.setObject(1, numberRandom); ps.setObject(2, clientName); ps.setObject(3, PID); ps.setObject(4, sex); ps.setObject(5, timestampnow); ps.setObject(6, myNative); ps.setObject(7, address); ps.setObject(8, telephone); boolean isInserted = ps.execute();// 执行语句

    System.out.println("-------------请填写银行卡信息-------------"); // 银行卡号随机生成8位数字,作为用户的卡号; int cardID = new Random().nextInt(99999999); ; String newCardID = String.valueOf(cardID); System.out.println("请输入你的存款类型"); String savingType = openInput.next(); System.out.println("请设置你的银行卡密码"); String password = openInput.next(); String sql1 = "insert into cardInfo (cardID,savingType,password) values('" + newCardID + "','" + savingType + "','" + password + "')"; ps = conn.prepareStatement(sql1); ResultSet rs = ps.executeQuery(sql1); System.out.println("-----------客户信息读取检查进行中-----------"); System.out.println("请耐心等待···············"); for (int i = 0; i < 3; i++) { Thread.sleep(1000); } // 交易流水号; int transID = new Random().nextInt(99999999); ; // 获取系统时间, String sql2 = "insert into transInfo (transID,cardID) values('" + transID + "','" + newCardID + "')"; ps = conn.prepareStatement(sql2); ResultSet rs1 = ps.executeQuery(sql2); System.out.println("-----------开户成功-----------"); } else { System.out.println("开卡失败,开卡金额不能小于10元"); } }

    // 存款取款; /* * 判断卡号是否存在,判断卡号是否挂失, */ public static void depositWithDrawsls(Connection conn) throws Exception { Scanner input = new Scanner(System.in); System.out.println("请输入你的卡号"); String cardID = input.next(); System.out.println("请输入你的密码"); String password = input.next(); String sql = "select count(*) from cardInfo where cardID=? and password=?"; PreparedStatement ps=null; ps = conn.prepareStatement(sql); // 查询用户输入的信息到数据库中; ps.setObject(1, cardID); ps.setObject(2, password); ResultSet rs = ps.executeQuery(); // 统计查询的结果,如果不存在,则返回小于0,如果存在则返回大于0; int count = 0; if (rs.next()) { count = rs.getInt(1);// 显示第一列的数; } if (count == 0) { System.out.println("该卡不存在或密码错误,请重新选择"); } else { String sql1 = "select count(*) from cardInfo where cardID=? and IsReportLoss=0"; ps = conn.prepareStatement(sql1); // 查询用户输入的信息到数据库中; ps.setObject(1, cardID); ResultSet rs1 = ps.executeQuery(); // 统计查询的结果,如果不存在,则返回小于0,如果存在则返回大于0; int count1 = 0; if (rs1.next()) { count1 = rs1.getInt(1);// 显示第一列的数; } if (count1 == 0) { System.out.println("该卡已经挂失"); } else { System.out.println("----请选择----"); System.out.println("1 存钱 -------- 2 取钱"); int cq = input.nextInt(); if (cq == 1) { System.out.println("请输入你存款金额"); int putMoney = input.nextInt(); String putMoneySql = "update cardInfo set balance=balance+'" + putMoney + "'where cardID='" + cardID + "'"; ps = conn.prepareStatement(putMoneySql); ResultSet rs2 = ps.executeQuery(); System.out.println("存款成功"); rs = ps.executeQuery("select * from cardInfo where cardID='"+cardID+"'"); //对结果集进行处理 while (rs.next()) { int id = rs.getInt("balance"); DecimalFormat df = new DecimalFormat("######0.00"); System.out.println("当前余额: "+df.format(id)+"RMB"); }

    } if (cq == 2) { System.out.println("请输入取款金额"); int outMoney = input.nextInt(); String outMoneySql = "update cardInfo set balance=balance-'" + outMoney + "'where cardID='" + cardID + "'"; ps = conn.prepareStatement(outMoneySql); ResultSet rs3 = ps.executeQuery(); System.out.println("取款成功"); rs = ps.executeQuery("select * from cardInfo where cardID='"+cardID+"'"); //对结果集进行处理 while (rs.next()) { int id = rs.getInt("balance"); DecimalFormat df = new DecimalFormat("######0.00"); System.out.println("当前余额: "+df.format(id)+"RMB"); }

    } } }

    }

    // 转账; /* * 判断转出卡号是否存在或挂失; 判断转入卡号是否存在或挂失 判断余额是否足够 判断密码是否正确 */ public static void transferAccounts(Connection conn) throws Exception { Scanner input = new Scanner(System.in); System.out.println("请输入转出卡号"); // 转出; String outCardID = input.next(); String sql1 = "select count(*) from cardInfo where cardID=?"; PreparedStatement ps=null; ps = conn.prepareStatement(sql1); // 查询用户输入的信息到数据库中; ps.setObject(1, outCardID); ResultSet rs = ps.executeQuery(); // 统计查询的结果,如果不存在,则返回小于0,如果存在则返回大于0; int count = 0; if (rs.next()) { count = rs.getInt(1);// 显示第一列的数; } if (count == 0) { System.out.println("转出卡不存在"); } else { String sql2 = "select count(*) from cardInfo where cardID=? and IsReportLoss=0"; ps = conn.prepareStatement(sql2); // 查询用户输入的信息到数据库中; ps.setObject(1, outCardID); ResultSet rs1 = ps.executeQuery(); // 统计查询的结果,如果不存在,则返回小于0,如果存在则返回大于0; int count1 = 0; if (rs1.next()) { count1 = rs1.getInt(1);// 显示第一列的数; } if (count1 == 0) { System.out.println("此转出卡挂失"); } else { // 转入卡; System.out.println("请输入转入卡号"); String inCardID = input.next(); String sql3 = "select count(*) from cardInfo where cardID=?"; ps = conn.prepareStatement(sql3); // 查询用户输入的信息到数据库中; ps.setObject(1, inCardID); ResultSet rs3 = ps.executeQuery(); // 统计查询的结果,如果不存在,则返回小于0,如果存在则返回大于0; int count3 = 0; if (rs3.next()) { count3 = rs3.getInt(1);// 显示第一列的数; } if (count3 == 0) { System.out.println("转入卡不存在"); } else { String sql4 = "select count(*) from cardInfo where cardID=? and IsReportLoss=0"; ps = conn.prepareStatement(sql4); // 查询用户输入的信息到数据库中; ps.setObject(1, inCardID); ResultSet rs4 = ps.executeQuery(); // 统计查询的结果,如果不存在,则返回小于0,如果存在则返回大于0; int count4 = 0; if (rs4.next()) { count4 = rs4.getInt(1);// 显示第一列的数; } if (count4 == 0) { System.out.println("此转入卡挂失"); } else { System.out.println("请输入转账金额"); int outMoney = input.nextInt(); System.out.println("请输入交易密码"); String password = input.next(); String sql5 = "select count(*) from cardInfo where cardID=? and password=?"; ps = conn.prepareStatement(sql5); // 查询用户输入的信息到数据库中; ps.setObject(1, outCardID); ps.setObject(2, password); ResultSet rs5 = ps.executeQuery(); // 统计查询的结果,如果不存在,则返回小于0,如果存在则返回大于0; int count5 = 0; if (rs5.next()) { count5 = rs5.getInt(1);// 显示第一列的数; } if (count5 == 0) { System.out.println("密码不正确"); } else { String putMoneySql = "update cardInfo set balance=balance+'" + outMoney + "'where cardID='" + inCardID + "'"; ps = conn.prepareStatement(putMoneySql); ResultSet rs6 = ps.executeQuery(); System.out.println("转入方存款成功"); rs = ps.executeQuery("select * from cardInfo where cardID='"+inCardID+"'"); //对结果集进行处理 while (rs.next()) { int id = rs.getInt("balance"); DecimalFormat df = new DecimalFormat("######0.00"); System.out.println("当前余额: "+df.format(id)+"RMB"); }

    String outMoneySql = "update cardInfo set balance=balance-'" + outMoney + "'where cardID='" + outCardID + "'"; ps = conn.prepareStatement(outMoneySql); ResultSet rs7 = ps.executeQuery(); System.out.println("转出方扣款成功");

    rs = ps.executeQuery("select * from cardInfo where cardID='"+outCardID+"'"); //对结果集进行处理 while (rs.next()) { int id = rs.getInt("balance"); DecimalFormat df = new DecimalFormat("######0.00"); System.out.println("当前余额: "+df.format(id)+"RMB"); } }

    } }

    } }

    }

    // 结算利息; public static void settlementInterest(Connection conn)throws Exception { Scanner input = new Scanner(System.in); System.out.println("请输入卡号"); String cardID = input.next(); System.out.println("请输入密码"); String password = input.next(); String sql = "select count(*) from cardInfo where cardID=? and password=?"; PreparedStatement ps=null; ps = conn.prepareStatement(sql); ps.setObject(1, cardID); ps.setObject(2, password); ResultSet rs = ps.executeQuery(); int count = 0; if (rs.next()) { count = rs.getInt(1);// 显示第一列的数; } if (count == 0) { System.out.println("该卡不存在或密码输入不正确"); } else { String isLoss = "select count(*) from cardInfo where cardID='" + cardID + "' and IsReportLoss=1"; PreparedStatement isPs=null; isPs = conn.prepareStatement(isLoss); ResultSet isRSLoss = isPs.executeQuery(); int count2 = 0; if (isRSLoss.next()) { count2 = isRSLoss.getInt(1);// 显示第一列的数; } if(count2==0){ String dateSql=" select opendate from cardInfo where cardID='"+cardID+"' ";

    ps=conn.prepareStatement(dateSql);//执行sql rs=ps.executeQuery(); if(rs.next()){ //获得数据开户时间日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date d = sdf.parse(rs.getString("opendate")); // 通过该日期得到一个毫秒值 long myTime = d.getTime(); // 获取当前时间的毫秒值 long nowTime = System.currentTimeMillis(); // 用D-C得到一个毫秒值 long time = nowTime - myTime; long day = time / 1000 / 60 / 60 / 24; double dayRate=day*0.00136986; /*银行按天计算 利息是:0.00136986; * */ String rateSql="update cardInfo set balance=balance+balance*'"+dayRate+"' where cardID='"+cardID+"'"; ps=conn.prepareStatement(rateSql); ResultSet rs7 = ps.executeQuery(); System.out.println("利息计算成功!");

    rs = ps.executeQuery("select * from cardInfo where cardID='"+cardID+"'"); //对结果集进行处理 while (rs.next()) { int id = rs.getInt("balance"); DecimalFormat df = new DecimalFormat("######0.00"); System.out.println("当前余额: "+df.format(id)+"RMB"); }

    }else{ System.out.println("该卡已经挂失,无法结算利息"); } } }

    }

    // 修改密码; public static void modifyPassword(Connection conn) throws Exception { Scanner input = new Scanner(System.in); System.out.println("请输入卡号"); String cardID = input.next(); System.out.println("请输入密码"); String password = input.next(); String sql = "select count(*) from cardInfo where cardID=? and password=?"; PreparedStatement ps=null; ps = conn.prepareStatement(sql); ps.setObject(1, cardID); ps.setObject(2, password); ResultSet rs = ps.executeQuery(); int count = 0; if (rs.next()) { count = rs.getInt(1);// 显示第一列的数; } if (count == 0) { System.out.println("该卡不存在或密码输入不正确"); } else { String isLoss = "select count(*) from cardInfo where cardID='" + cardID + "' and IsReportLoss=1"; PreparedStatement isPs=null; isPs = conn.prepareStatement(isLoss); ResultSet isRSLoss = isPs.executeQuery(); int count2 = 0; if (isRSLoss.next()) { count2 = isRSLoss.getInt(1);// 显示第一列的数; } if(count2==0){ System.out.println("请输入新的密码"); String oneNewPassword = input.next(); System.out.println("请再次输入新的密码"); String twoNewPassword = input.next(); if (oneNewPassword.equals(twoNewPassword)) { String passwordSql = "update cardInfo set password='" + oneNewPassword + "' where cardID='" + cardID + "'"; ps = conn.prepareStatement(passwordSql); ResultSet rsPassWord = ps.executeQuery(); System.out.println("密码修改成功"); } else { System.out.println("密码不一致"); } }else{ System.out.println("该卡之前挂失,无法修改密码!"); }

    } }

    // 挂失; public static void reportTheLoss(Connection conn) throws Exception { Scanner input = new Scanner(System.in); System.out.println("请输入银行卡"); String cardID = input.next(); System.out.println("请输入密码"); String password = input.next(); String lossSql = "select count(*) from cardInfo where cardID='" + cardID + "' and password='" + password + "' "; PreparedStatement ps=null; ps = conn.prepareStatement(lossSql); ResultSet rs = ps.executeQuery(); int count = 0; if (rs.next()) { count = rs.getInt(1);// 显示第一列的数; } if (count == 0) { System.out.println("密码输入不正确或此卡不存在"); } else {

    String isLoss = "select count(*) from cardInfo where cardID='" + cardID + "' and IsReportLoss=1"; PreparedStatement isPs=null; isPs = conn.prepareStatement(isLoss); ResultSet isRSLoss = isPs.executeQuery(); int count1 = 0; if (isRSLoss.next()) { count1 = isRSLoss.getInt(1);// 显示第一列的数; } if(count1==0){ String updateLossSql = "update cardInfo set IsReportLoss=1 where cardID='" + cardID + "'"; ps = conn.prepareStatement(updateLossSql); ResultSet rs1 = ps.executeQuery(); System.out.println("挂失成功");

    }else{ System.out.println("对不起!该卡之前挂失过!"); }

    } } }

    转载请注明原文地址: https://ju.6miu.com/read-1307624.html
    最新回复(0)