文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

java中ATM与数据库Mysql的连接

2024-04-02 19:55

关注
  1. import java.sql.*;  

  2. import java.util.*;  

  3. public class ATM1 {  

  4.     String code;  

  5.     int pass;  

  6.     double money;  

  7.     int i=1;  

  8.     //检查登录  

  9.     public void checkLogin(){  

  10.         int i=1;  

  11.         while(i<=3){  

  12.             System.out.print("请输入您的卡号:");  

  13.             Scanner sc=new Scanner(System.in);  

  14.             String code_=sc.nextLine();  

  15.             System.out.print("请输入您的密码:");  

  16.             int pass_=sc.nextInt();  

  17.             try{  

  18.                 //加载驱动  

  19.                 Class.forName("com.mysql.jdbc.Driver");  

  20.                 //建立连接  

  21.                 java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","root");     

  22.                 //创建sql传送对象  

  23.                 Statement stmt = conn.createStatement();  

  24.                 //将sql语句通过sql传送对象传送到数据库并执行,返还结果集  

  25.                 String sql = "select * from account where code='"+code_+"'and pass="+pass_;  

  26.                 ResultSet rs = stmt.executeQuery(sql);    

  27.                 //当账号、密码与sql中的账号与密码相对应的时候  

  28.                 //把sql中的相关数据传送到目前变量以便进行数据操作  

  29.                 if(rs.next()){  

  30.                     code = rs.getString(1);  

  31.                     pass = rs.getInt(2);  

  32.                     money = rs.getDouble(3);  

  33.                     loadSys();  

  34.                 }  

  35.                 rs.close();  

  36.                 stmt.close();  

  37.                 conn.close();  

  38.             }  

  39.             //捕获异常  

  40.             catch (Exception e){  

  41.                 System.out.println(e);  

  42.             }  

  43.             //出现三次错误之后提示  

  44.             i++;  

  45.             if( i == 3){  

  46.             System.out.print("您已经输错三次密码,该卡已经被锁,请及时到相关网点咨询!");  

  47.             }  

  48.         }  

  49.     }  

  50.     //保存数据  

  51.     //注意;下面的关键字(    "pass、code、money")要与数据库中的名字一样,避免出现错误  

  52.     public void saveDb(){  

  53.         try{  

  54.             Class.forName("com.mysql.jdbc.Driver");  

  55.             java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","root");     

  56.             Statement stmt = conn.createStatement();  

  57.             String sql="update account set pass ="+pass+" where code='"+code+"'";    

  58.             //dode为String型,所以要用‘’括起来  

  59.             String sql1="update account set money="+money+" where code='"+code+"'";  

  60.             stmt.executeUpdate(sql);    //update操作进行数据更新  

  61.             stmt.executeUpdate(sql1);  

  62.             stmt.close();  

  63.             conn.close();  

  64.         }     

  65.         catch (Exception e){  

  66.                 System.out.println(e);  

  67.             }  

  68.           

  69.     }  

  70.     //欢迎界面  

  71.     public static void welcome(){  

  72.         System.out.println("!*****************************************!");  

  73.         System.out.println("!*************欢迎使用华夏银行*************!");  

  74.         System.out.println("!*****************************************!");  

  75.     }  

  76.     //系统主界面  

  77.     public void loadSys(){  

  78.         System.out.println(".------------------------------------.");  

  79.         System.out.println("1 查询余额                      存款 2");  

  80.         System.out.println("3 取款                      修改密码 4");  

  81.         System.out.println("5 退出                                ");  

  82.         System.out.println(".------------------------------------.");  

  83.         System.out.print("请输入相应的功能选项数字:");  

  84.         Scanner sz=new Scanner(System.in);  

  85.         int num=sz.nextInt();         

  86.         switch(num){  

  87.             case 1:     

  88.                 chaxun();  

  89.                 break;  

  90.             case 2:     

  91.                cunkuan();  

  92.                break;  

  93.             case 3:     

  94.                qukuan();  

  95.                break;  

  96.             case 4:     

  97.                xiugai();  

  98.                break;  

  99.             case 5:     

  100.                quit();  

  101.                break;  

  102.             default:  

  103.                System.out.println("您输入的数字有误!");  

  104.                loadSys();  

  105.         }  

  106.     }  

  107.     //查询余额  

  108.     public void chaxun(){  

  109.         System.out.println("您卡上的余额为:" +money);  

  110.         loadSys();  

  111.     }  

  112.     //存款  

  113.     public void cunkuan(){  

  114.         System.out.print("请输入存款金额:");  

  115.         Scanner ck=new Scanner(System.in);  

  116.         double money1=ck.nextDouble();  

  117.         money=money+money1;  

  118.         saveDb();  

  119.         System.out.println("您卡上的余额为:" +money);  

  120.         System.out.println("请收好您的卡!");  

  121.         loadSys();  

  122.     }  

  123.     //取款  

  124.     public void qukuan(){  

  125.         System.out.print("请输入取款金额:");  

  126.         Scanner qk=new Scanner(System.in);  

  127.         double money2=qk.nextDouble();  

  128.         if(money2>money){  

  129.             System.out.println("您的余额不足!");    

  130.             qukuan();  

  131.         }else{  

  132.             money=money-money2;  

  133.             saveDb();  

  134.             System.out.println("您卡上的余额为:" +money);  

  135.             System.out.println("请收好您的现金!");   

  136.             loadSys();  

  137.         }  

  138.     }  

  139.     //修改密码  

  140.     public void xiugai(){  

  141.         int cs = 0;  

  142.         System.out.print("请输入原密码:");   

  143.         Scanner mm=new Scanner(System.in);  

  144.         int pass1=mm.nextInt();  

  145.         System.out.print("请输入新密码:");   

  146.         int pass2=mm.nextInt();  

  147.         System.out.print("请再次输入新密码:");   

  148.         int pass3=mm.nextInt();  

  149.         if(pass==pass1&& pass2==pass3){  

  150.             System.out.println("修改密码成功!");   

  151.             pass=pass2;  

  152.             saveDb();  

  153.             loadSys();  

  154.         }else{  

  155.             if(cs<2){  

  156.                System.out.print("您输入的密码有误!");   

  157.                cs++;  

  158.                xiugai();  

  159.             }else{  

  160.                quit();  

  161.             }  

  162.         }  

  163.     }  

  164.     //退出  

  165.     public void quit(){  

  166.         System.exit(1);       

  167.     }  

  168.     //主函数  

  169.     public static void main(String args[]){  

  170.           

  171.         ATM1 atm = new ATM1();  

  172.         atm.welcome();  

  173.         atm.checkLogin();  

  174.         }     

  175. }  


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯