java中ATM与数据库Mysql的连接
admin
2023-06-04 20:01:34
0
  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.         /*try{ 

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

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

  173.             Statement stmt = conn.createStatement(); 

  174.             String sql = "select * from account"; 

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

  176.             while (rs.next()){ 

  177.                 String code = rs.getString(1); 

  178.                 int pass = rs.getInt(2); 

  179.                 double money = rs.getDouble(3); 

  180.                 System.out.println(code+"|"+pass+"|"+money); 

  181.             } 

  182.             rs.close(); 

  183.             stmt.close(); 

  184.             conn.close(); 

  185.         } 

  186.         catch(Exception e){ 

  187.         System.out.println(e); 

  188.         }*/  

  189.         ATM1 atm = new ATM1();  

  190.         atm.welcome();  

  191.         atm.checkLogin();  

  192.         }     

  193. }  


相关内容

热门资讯

伊朗军队:已做好准备,坚决回击... 当地时间23日,伊朗军队发表声明,强调将随时准备对敌人的任何侵犯做出坚决且全方位的回击。(总台记者 ...
燃油车,真的没人买了? “如今加满一箱油,费用较年初高出近百元。”燃油车主张先生坦言,用车成本大幅上涨,让新能源车型的性价比...
出境打工月入3万?警惕境外高薪... 不要求学历和工作经验,到了国外就能找到工作,“月薪三万”“零门槛”“包吃住”,看到这样的广告,相信很...
格力空调外机嗡嗡响一下风机就不... 原因可能是制冷系统管路内发生制冷剂的缓慢渗漏,导致压缩机的工作效率骤减,内机末端装置风机盘管温度降低...
抽油烟机响了一下就不工作了 1、也许是因为插座的地方没有电了,或者油烟机的线路断掉了,出现了短路,所以油烟机不能正常的进行工作。...
冰箱搬运了一下就不制冷了 1、主要是因为搬运过程中电源线出现了拉扯导致电源线内部的线发生了断裂,所以再次使用的时候不再启动制冷...
冰箱调了温度之后就不启动了 原因可能是没有达到启动温度,可以尝试将档位调到最大看是否能正常启动;原因可能是外界气温较低时,室温与...
飞利浦电视开机闪一下就黑屏怎么... 1、检查插座的电压,确定是由于电源不稳定导致的,则需要在家里准备一个稳压器,保证供给电视的电压是稳定...
缅北“四大家族”多人被执行死刑... 2026年5月19日至22日,福建省泉州市中级人民法院一审公开开庭审理了被告人魏怀仁、廖景芳、康敏诈...
法国禁止以色列国家安全部长入境 新华社巴黎5月23日电 法国外交部长巴罗23日在社交媒体发文说,自即日起,以色列国家安全部长本-格维...