首页 > 代码库 > java中ATM与数据库Mysql的连接

java中ATM与数据库Mysql的连接

  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. }  


本文出自 “12156507” 博客,请务必保留此出处http://12166507.blog.51cto.com/12156507/1865135

java中ATM与数据库Mysql的连接