⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bankthreadserver.java

📁 本工程模拟网上社区,其中包括银行,软件销售公司,软件投资公司,茶餐馆,和多个服务器.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            s.close();
            con.close();
            return str;
        }
        catch(SQLException e){ 
           try{
               con.close();
           }
           catch(SQLException sqle){
               System.out.println("SQLException:"+sqle.getMessage()+"\n"+"At BankTheadServer.java ask() method while con.close() is called.");
           }
           System.out.println("SQLException:"+e.getMessage()+"\n"+"At BankTheadServer.java while ask() method is called.");
           return "fail"; 
        }
    }
   public  String editcode(String account,String oldcode,String newcode)  //修改密码
   {
       connection();
       try{
           Statement s=con.createStatement();
           ResultSet rs=s.executeQuery("select * from Account");
           while(rs.next()){
              if(rs.getString("账号").equals(account)&&rs.getString("密码").equals(oldcode)){
                 PreparedStatement ps=con.prepareStatement("UPDATE Account set 密码=? where 账号=?");
                 ps.setString(1,newcode);
                 ps.setString(2,account);
                 ps.executeUpdate();
          
                 ps.close();
                 con.close();
                 return "success";   
              }
           }
           con.close();
           return "fail";
       }
       catch(SQLException e){ 
           try{
               con.close();
           }
           catch(SQLException sqle){
               System.out.println("SQLException:"+sqle.getMessage()+"\n"+"At BankTheadServer.java editcode() method while con.close() is called.");
           }
           System.out.println("SQLException:"+e.getMessage()+"\n"+"At BankThreadServer.java editcode() method."); 
           return "fail";
       }
   }
   
   
   public  String create(String name,String cardnum,String address,String telnum,String ispublic)  //创建
   {
       connection();
        try{
            Statement s=con.createStatement();
            String r="insert into Account values(0,0,0,0,0,0,0,0.00)";
            s.executeUpdate(r);
            s.close();
           
            Calendar c=Calendar.getInstance();         
           
            String account=String.valueOf(c.getTimeInMillis());
            String newtime=String.valueOf(c.get(Calendar.YEAR))+"-"+String.valueOf(c.get(Calendar.MONTH)+1)+"-"+String.valueOf(c.get(Calendar.DAY_OF_MONTH)); 
            String code;
            if(ispublic.equals("0")){
                if(cardnum.endsWith("X")||cardnum.endsWith("x")) {
                   code=cardnum.substring(11,17);
                }
                else 
                    code=cardnum.substring(12,18);
            }
            else {code="111111";}
            
            PreparedStatement ps=con.prepareStatement("UPDATE Account set 账号=?, 密码=?, 姓名=?, 身份证号码=?, 邮件地址=?, 固定电话=?, 存款时间=?, 余额=? where 余额=0.00");
            ps.setString(1,account);
            ps.setString(2,code);
            ps.setString(3,name);
            ps.setString(4,cardnum);
            ps.setString(5,address);
            ps.setString(6,telnum);
            ps.setString(7,newtime);
            ps.setDouble(8,1.00);
            ps.executeUpdate();
            ps.close();
            con.close();
      //创建成功后,自动登录到帐户
            //标记已经登录
            bankserver.onService.add(account);
            bankserver.visitors++;
            //保留当前帐号
            currentAccount=account;
            return "success+"+account+"+"+code;
        }
        catch(SQLException e){ 
            e.getMessage();
            try{
               con.close();
           }
           catch(SQLException sqle){
               System.out.println("SQLException:"+sqle.getMessage()+"\n"+"At BankTheadServer.java create() method while con.close() is called.");
           }
            System.out.println("SQLException:"+e.getMessage()+"\n"+"At BankThreadServer.java create() method.");
            return "fail"; 
        }
   }
   
   public  String  delete(String account)   //删除
   {
       connection();
        try{
            int should=0;
            Statement s=con.createStatement();
            ResultSet rs=s.executeQuery("select * from Account");
            while(rs.next())
            {
                if(rs.getString("账号").equals(account)&&rs.getDouble("余额")<=10.00)
                {  
                    should=1;
                    break;
                }
            }
            s.close();
            if(should==1){
               PreparedStatement ps=con.prepareStatement("delete from Account where 账号=?");
               ps.setString(1,account);
               ps.executeUpdate();
               ps.close();
               con.close();
               return "success";
            }
           else{con.close();return "cannot";}
        }
        catch(SQLException e){ 
            try{
               con.close();
           }
           catch(SQLException sqle){
               System.out.println("SQLException:"+sqle.getMessage()+"\n"+"At BankTheadServer.java delete() method while con.close() is called.");
           }
           System.out.println("SQLException:"+e.getMessage()+"\n"+"At BankThreadServer.java delete() method.");
           return "fail"; 
        }
   } 
   
   public  String edit(String account,String address,String telnum)   //编辑
   {
        connection();
        try{
            PreparedStatement ps=con.prepareStatement("UPDATE Account set 邮件地址=?, 固定电话=? where 账号=?");
            ps.setString(1,address);
            ps.setString(2,telnum);
            ps.setString(3,account);
            ps.executeUpdate(); 
            ps.close();
            con.close();
            return "success";
        }
        catch(SQLException e){
           try{
               con.close();
           }
           catch(SQLException sqle){
               System.out.println("BankThreadServer.java;Method: edit() while con.close "+sqle.getMessage());
           }
           System.out.println("BankThreadServer.java;Method: edit() "+e.getMessage());
           return "fail"; 
        }
   }
   
   public  String payloan(String account)
   {
       connection();
       try{
           Statement s=con.createStatement();
           ResultSet rs=s.executeQuery("select * from Loan");
           String number=null;
           String name=null;
           double money=0.00;
           int time=0;
           double interest=0.00;
           
           boolean done=false;
           while(rs.next()){
               if(rs.getString("贷款人账号").equals(account)&&rs.getString("是否还款").equals("否")){
                   done=true;
                   money=rs.getDouble("贷款金额");
                   time=rs.getInt("贷款时间");
                   interest=money*time*rs.getDouble("利率");
                   name=rs.getString("贷款人姓名");
                   number=rs.getString("编号");
                   break;
               }
           }
           if(!done) return "no item";
           String strToClient="success+"+number+"+"+account+"+"+name+"+"+String.valueOf(money)+"+"+String.valueOf(time)+"+"+String.valueOf(interest);           
           s.close();
           con.close();
           return strToClient;
       }
       catch(SQLException e){
           try{
               con.close();
           }
           catch(SQLException sqle){
               System.out.println("BankThreadServer.java;methon:payloan()while con.close()  "+sqle.getMessage());
           }
           System.out.println("BankThreadServer.java;methon:payloan().Exception:"+e.getMessage());
           return "fail"; 
       }
   }
   
  public String manager(String account,String str)throws IOException
  {
      connection();
      try{
           Statement s=con.createStatement();
           ResultSet rs=s.executeQuery("select * from Account");
           while(rs.next())
           {
               if(rs.getString("账号").equals(account)) break;
           }
           String name=rs.getString("姓名");
           String cstr=account+"  "+name+" :       "+str+"\n";
           FileWriter fout=new FileWriter("D:\\customer.txt",true);
           char b[]=new char[cstr.length()];
           b=cstr.toCharArray();
           fout.write(b);
           fout.flush();
           fout.close();
           con.close();
           return "success";
      }catch(SQLException e){ 
          try{
               con.close();
           }
           catch(SQLException sqle){
               System.out.println("BankThreadServer.java;method: manager()"+sqle.getMessage());
           }
          System.out.println("BankThreadServer.java;method: manager()"+e.getMessage());
          return "fail"; 
      }
  }
  
   public String unKnow(){
       return "UNKNOW+";
   }
   
    public void run(){
        try{
            boolean done=false;
            while(!done){
                String strFromClient=in.readLine();
                if(strFromClient.equals("END")) {done=true;}
                else{
                    StringTokenizer st=new StringTokenizer(strFromClient,"+");
                    String temp[]=new String[st.countTokens()];
                    for(int i=0;i<temp.length;i++)
                    {  
                        temp[i]=st.nextToken();
                    }
                    int op=Integer.parseInt(temp[0]);
                    switch(op)
                    {
                        case 0:
                            out.println(unKnow());
                            break;
                        case 1:
                            out.println(login(temp[1],temp[2]));
                            break;
                        case 2:
                            out.println(deposit(temp[1],Double.parseDouble(temp[2])));
                            break;
                        case 3:
                            out.println(withdraw(temp[1],Double.parseDouble(temp[2])));
                            break;
                        case 4:
                            out.println(shift(temp[1],temp[2],Double.parseDouble(temp[3])));
                            break;
                        case 5:
                            out.println(applyLoan(temp[1],temp[2],Double.parseDouble(temp[3]),Integer.parseInt(temp[4]),Double.parseDouble(temp[5])));
                            break;
                        case 6:
                            out.println(ask(temp[1]));
                            break;
                        case 7:
                            out.println(editcode(temp[1],temp[2],temp[3]));
                            break;
                        case 8:
                            out.println(create(temp[1],temp[2],temp[3],temp[4],temp[5]));
                            break;
                        case 9: 
                            out.println(delete(temp[1]));
                            break;
                        case 10:
                            out.println(edit(temp[1],temp[2],temp[3]));
                            break;
                        case 11:
                            out.println(payloan(temp[1]));
                            break;
                        case 12:
                            out.println(manager(temp[1],temp[2]));
                            break;
                        default:
                            out.println("UNKNOW+");  
                    }
                }
            }
        }
        catch(Exception e){
           System.out.println("Exception:"+e.getMessage()+"\n"+"At BankThreadServer.java run() method.");
        }
        finally
        {
            try{
                bankserver.visitors--;
                bankserver.onService.remove(currentAccount);
                currentAccount=null;
                socket.close();
                
            }
            catch(IOException ioe){
                System.out.println("IOException:"+ioe.getMessage()+"\n"+"At BankThreadServer.java run() method while socket.close() is called.");
                System.out.println("断开服务器遇到错误!");
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -