银行系统---数据库连接修改

1.开户功能

public void kaihu() {
        
        // 开户方法
        //输入姓名
        Cuxuka cxk=new Cuxuka();
        try{
        Scanner sc1=new Scanner(System.in);
        System.out.println("请输入你的姓名:");
        String st=sc1.nextLine();
        cxk.setName(st);
        //输入身份证
        System.out.println("请输入你的身份证号:");
        for(int ig=0;ig>=0;ig++)
        {
            Scanner sc2=new Scanner(System.in);
            String str=sc2.nextLine();
            String st1="\d{15}|\d{17}[\dxX]";
            if(str.matches(st1))
            {
                cxk.setShenfen(str);
                break;
            }
            else
            {
                System.out.println("输入的身份证号不是18位身份号");
            }
        }
        //设置账户密码
        System.out.println("请输入你的密码:");
        for(int ig=0;ig>=0;ig++)
        {
            Scanner sc3=new Scanner(System.in);
            String pass=sc3.nextLine();
            String mm="\d{6}";
            if(pass.matches(mm))
            {
                cxk.setPassword(pass);
                break;
            }
            else
            {
                System.out.println("请输入正确的6位数密码");
            }
        }
        //生成6位数储蓄卡号
        Random a=new Random();
        int[] ch=new int[6];
        StringBuilder str=new StringBuilder();
        String s;
        for(int i=0;i<6;i++)
        {
            ch[i]=a.nextInt(9);
        }
        
        for(Integer c:ch)
        {
        str.append(c);
        }
        s=str.toString();
        cxk.setCard(s);
        System.out.println("您的新卡号为:"+cxk.getCard());
        
        
        //打开驱动
        Class.forName("oracle.jdbc.driver.OracleDriver");
        
        //获取数据库连接
        String url="jdbc:oracle:thin:@localhost:1521:orcl";
        Connection conn=DriverManager.getConnection(url, "test01", "123456");
        
        //获取数据库声明
        Statement sm=conn.createStatement();
        sm.executeUpdate("insert into bank values('"+cxk.getName()+"','"+cxk.getShenfen()+"','"+cxk.getCard()+"','"+cxk.getBalance()+"','"+cxk.getPassword()+"')");
        
        System.out.println("开户成功,谢谢使用");
        sm.close();
        conn.close();
        /*
        //将生成的数据导入银行卡list列表中
        Yinhanglei.getYinhangLei().list.add(cxk.getCard());
        
        //将生成的数据导入银行卡Map列表中
        Yinhanglei.getYinhangLei().map.put(cxk.getCard(), cxk);*/
        
        
        
        
        }catch (Exception e) {
            System.out.println("输入有误");
        }
        
    }
    

查询功能:

//查询方法
    public void chaxun(){
        while(true){
        try{
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入你要查询的卡号:");
            String s=sc.nextLine();
            // 访问数据库
            //1、加载驱动:加载数据库提供的驱动类
             Class.forName("oracle.jdbc.driver.OracleDriver");
                             
              //2、获取数据库连接,通过java的驱动管理器
             //url-数据库地址,不同的数据库写法不一样;user-用户名;password-密码
              Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl ","test01", "123456");
             String sql="select * from bank where ba_card=? ";
             PreparedStatement ps=conn.prepareStatement(sql);
             ps.setString(1, s);
             ResultSet rs=ps.executeQuery();
             if(rs.next())
             {
                String pw= rs.getString("ba_password");
                Scanner sc1=new Scanner(System.in);
                System.out.println("请输入卡号密码:");
                String s1=sc.nextLine();
                
                if(pw.equals(s1))
                {
                    System.out.println("你查询的账号信息为:");
                    System.out.println();
                    System.out.println("******************************");
                    System.out.println();
                    System.out.println("姓名  身份证号    卡号   金额");
                    System.out.println();
                    System.out.println(rs.getString("ba_name")+" "+rs.getString("ba_shenfen")+" "+rs.getString("ba_card")+" "+rs.getString("ba_balance"));
                    break;
                }
                else
                {
                    int i=0;
                    i++;
                    if(i==3)
                    {
                        System.out.println("密码输入错误超过3次");
                        break;
                    }
                    else
                    {
                        System.out.println("密码输入有误");
                    }
                }
                rs.close();
                ps.close();
                conn.close();
                break;
            }
                
            else
            {
                System.out.println("卡号输入有误请确认");
            }
        
        }catch (Exception e) {
            System.out.println("输入有误");
        }
        break;
        }
    }

3.存款功能

public void cun() {
        while(true)
        {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你要查询的卡号:");
        String s=sc.nextLine();
        // 访问数据库
        //1、加载驱动:加载数据库提供的驱动类
         try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        
                         
          //2、获取数据库连接,通过java的驱动管理器
         //url-数据库地址,不同的数据库写法不一样;user-用户名;password-密码
          Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl ","test01", "123456");
         String sql="select * from bank where ba_card=? ";
         PreparedStatement ps=conn.prepareStatement(sql);
         ps.setString(1, s);
         ResultSet rs=ps.executeQuery();
         if(rs.next())
         {
            String pw= rs.getString("ba_password");
            Scanner sc1=new Scanner(System.in);
            System.out.println("请输入卡号密码:");
            String s1=sc.nextLine();
            
            if(pw.equals(s1))
            {
                System.out.println("你查询的账号信息为:");
                System.out.println();
                System.out.println("******************************");
                System.out.println();
                System.out.println("姓名  身份证号    卡号   金额");
                System.out.println();
                System.out.println(rs.getString("ba_name")+" "+rs.getString("ba_shenfen")+" "+rs.getString("ba_card")+" "+rs.getString("ba_balance"));
            }
            else
            {
                int i=0;
                i++;
                if(i==3)
                {
                    System.out.println("密码输入错误超过3次");
                    break;
                }
                else
                {
                    System.out.println("密码输入有误");
                }
            }
         }
         else
            {
                System.out.println("卡号输入有误请确认");
            }
         
         while(true)
         {
        Scanner sc2=new Scanner(System.in);
        System.out.println("请输入你要存入的金额:");
        double cun=sc2.nextDouble();
        // 实现存款方法
         if(cun<0)
         {
             System.out.println("你输入的数据无效,系统将自动退出!谢谢使用");
         }
         else
         {
             
             try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
            
             
              //2、获取数据库连接,通过java的驱动管理器
             //url-数据库地址,不同的数据库写法不一样;user-用户名;password-密码
              Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl ","test01", "123456");
             
              Statement sm=con.createStatement();
              balance=rs.getDouble("ba_balance");
              balance+=cun;
              String sql1="update bank set ba_balance='"+balance+"'where ba_card='"+s+"'";
             sm.executeQuery(sql1);
             Statement rl=con.createStatement();
             String sql2="select ba_balance from bank where ba_card='"+s+"'";
             ResultSet rt=rl.executeQuery(sql2);
             System.out.println("存款成功,剩余金额"+rs.getDouble("ba_balance"));
             sm.close();
             con.close();
             conn.close();
             rs.close();
             ps.close();
             break;
             } catch (Exception e) {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                    continue;
                }
         }
         }
     } catch (Exception e1) {
            // TODO 自动生成的 catch 块
            e1.printStackTrace();
            continue;
        }
         
        }
 }

4.取款功能

public void qu() {
        try{
            while(true)
            {
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入你要查询的卡号:");
            String s=sc.nextLine();
            // 访问数据库
            //1、加载驱动:加载数据库提供的驱动类
             Class.forName("oracle.jdbc.driver.OracleDriver");
                             
              //2、获取数据库连接,通过java的驱动管理器
             //url-数据库地址,不同的数据库写法不一样;user-用户名;password-密码
              Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl ","test01", "123456");
             String sql="select * from bank where ba_card=? ";
             PreparedStatement ps=conn.prepareStatement(sql);
             ps.setString(1, s);
             ResultSet rs=ps.executeQuery();
             if(rs.next())
             {
                String pw= rs.getString("ba_password");
                Scanner sc1=new Scanner(System.in);
                System.out.println("请输入卡号密码:");
                String s1=sc.nextLine();
                
                if(pw.equals(s1))
                {
                    System.out.println("你查询的账号信息为:");
                    System.out.println();
                    System.out.println("******************************");
                    System.out.println();
                    System.out.println("姓名  身份证号    卡号   金额");
                    System.out.println();
                    System.out.println(rs.getString("ba_name")+" "+rs.getString("ba_shenfen")+" "+rs.getString("ba_card")+" "+rs.getString("ba_balance"));
                }
                else
                {
                    int i=0;
                    i++;
                    if(i==3)
                    {
                        System.out.println("密码输入错误超过3次");
                        break;
                    }
                    else
                    {
                        System.out.println("密码输入有误");
                    }
                }
            }
                
            else
            {
                System.out.println("卡号输入有误请确认");
            }
        
    
        Scanner sc1=new Scanner(System.in);
        System.out.println("请输入你要取款的金额:");
        double qu=sc1.nextDouble();
                Class.forName("oracle.jdbc.driver.OracleDriver");
            
             
              //2、获取数据库连接,通过java的驱动管理器
             //url-数据库地址,不同的数据库写法不一样;user-用户名;password-密码
              Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl ","test01", "123456");
             
              Statement sm=con.createStatement();
              balance=rs.getDouble("ba_balance");
            // 实现取款方法
            if(qu<balance)
            {
                    balance-=qu;
                      String sql1="update bank set ba_balance='"+balance+"'where ba_card='"+s+"'";
                     sm.executeQuery(sql1);
                     Statement rl=con.createStatement();
                     String sql2="select ba_balance from bank where ba_card='"+s+"'";
                     ResultSet rt=rl.executeQuery(sql2);
                     System.out.println("取款成功,剩余金额"+rt.getDouble("ba_balance"));
                     sm.close();
                     con.close();
                     conn.close();
                     rs.close();
                     ps.close();
            }
            
            
            else if(qu<0) 
            {
                System.out.println("你输入的数据无效,系统将自动退出!谢谢使用");;
            }
            else
            {
                System.out.println("余额不足");
            }
            }
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
            e.printStackTrace();
        }    
    }

结果:

原文地址:https://www.cnblogs.com/tfl-511/p/5986683.html