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

📄 bank.java

📁 本工程模拟网上社区,其中包括银行,软件销售公司,软件投资公司,茶餐馆,和多个服务器.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package bankserver;
import java.sql.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class  Bank extends Company  {
    String JDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    String conURL="jdbc:odbc:Bank";
    public  Connection con;
    public static int PORT;
    public  static int ServicePort;
    ServerSocket toService;
    ServerSocket toCompany;
    public static final double INTEREST=0.005;
    public Bank() {                                     //加载jdbc-odbc桥驱动器
          try{  Class.forName(JDriver);
    }catch(java.lang.ClassNotFoundException e){
            System.out.println("forname: "+e.getMessage());
        }
}
    public void connection()            //与数据库连接   
    {
        try {
            con=DriverManager.getConnection(conURL);
            
        }catch(SQLException e)
        {
            System.out.println("SQLException: "+e.getMessage());
        }
    }
    void getPort()throws IOException
    {
        toService=new ServerSocket(ServicePort);
        try{
            Socket socket=toService.accept();
            try{
            BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
            String str=in.readLine();
            PORT=Integer.parseInt(str);
            out.println("get PORT successfully!");
        }finally{
            socket.close();
        }
    }finally{
        toService.close();
    }
    }
    public String login(String account,String password)  //登录
    {
        connection();
        try
        {
            int a=0;
            Statement s=con.createStatement();
            ResultSet rs=s.executeQuery("select * from Account");
            while(rs.next())
            {
                if(rs.getString("账号").equals(account)&&rs.getString("密码").equals(password))
                {
                    a=1;
                    break;
                }
            }
            s.close();
            con.close();
            if(a==1) return "success";
            else return "account or code wrong";
        }catch(SQLException e){  return e.getMessage();}
    }
    public  String deposit(String account,double money)     //存款
    {
        connection();
        try{
        PreparedStatement ps=con.prepareStatement("UPDATE Account set 余额=?, 存款时间=? where 账号=?");
        Statement s=con.createStatement();
        ResultSet rs=s.executeQuery("select * from Account");
        while(rs.next()){
            if(rs.getString("账号").equals(account)) break;
        }
        String dtime=rs.getString("存款时间");
        StringTokenizer st=new StringTokenizer(dtime,"-");
        String temp[]=new String[st.countTokens()];
        for(int i=0;i<temp.length;i++)
        {
              temp[i]=st.nextToken();
         }
        Calendar c=Calendar.getInstance();
        int time=(c.get(Calendar.YEAR)-Integer.parseInt(temp[0]))*12+c.get(Calendar.MONTH)-Integer.parseInt(temp[1]);
        money=money+rs.getDouble("余额")*(time*INTEREST+1);
        String newtime=String.valueOf(c.get(Calendar.YEAR))+"-"+String.valueOf(c.get(Calendar.MONTH));
        ps.setDouble(1,money);
        ps.setString(2,newtime);
        ps.setString(3,account);
        ps.executeUpdate();
        s.close();
        ps.close();
        con.close();
        return "success";
        }catch(SQLException e) { return "fail"; }
    }
    public  String withdraw(String account,double money)
    {
        connection();
        try{
        Statement s=con.createStatement();
        ResultSet rs=s.executeQuery("select * from Account");
        while(rs.next()){
            if(rs.getString("账号").equals(account)) break;
        }
        if(rs.getDouble("余额")<money){
            s.close();
            con.close();
            return "not enough";
        }
        else{
            deposit(account,money*-1);
            s.close();
            con.close();
            return "success";
        }
    }catch(SQLException e){ return "fail";}
    }
    public  String shift(String outaccount,String inaccount,double money) //转账
    {
        connection();
        try{
        Statement s=con.createStatement();
        ResultSet rs=s.executeQuery("select * from Account");
        while(rs.next()){
            if(rs.getString("账号").equals(outaccount)) break;
        }
        if(rs.getDouble("余额")<money){
            s.close();
            con.close();
            return "not enough";
        }
        else{
                 int a=0;
                 rs=s.executeQuery("select * from Loant");
                 while(rs.next()){
                 if(rs.getString("账号").equals(inaccount)) {a=1;break;}
                 }
            if(a==0) return  "no account";
            else{
                deposit(outaccount,money*-1);
                deposit(inaccount,money);
                s.close();
                con.close();
                return "success";
            }
        }
    }catch(SQLException e){ return "fail";}
   }
   public  String loan(String account,String name,double money,int time,double interest) //贷款
    {
        connection();
         try{
            Statement s=con.createStatement();
            String r="insert into Loan values(0,0,0,0,0,0,0,0,0)";
            s.executeUpdate(r);
            s.close();
            PreparedStatement ps=con.prepareStatement("UPDATE Loan set 贷款人账号=?,贷款人姓名=?,贷款金额=?,贷款日期=?,还款日期=?,贷款日期=?,利率=?,是否还款=?, 编号=? WHERE 贷款金额=0");
            Calendar c=Calendar.getInstance();
            String ltime=String.valueOf(c.get(Calendar.YEAR))+"-"+String.valueOf(c.get(Calendar.MONTH));
            String ptime=String.valueOf(c.get(Calendar.YEAR)+time)+"-"+String.valueOf(c.get(Calendar.MONTH));
            ps.setString(1,account);
            ps.setString(2,name);
            ps.setDouble(3,money);
            ps.setString(4,ltime);
            ps.setString(5,ptime);
            ps.setInt(6,time);
            ps.setDouble(7,interest);
            ps.setString(8,"否");
            String str=String.valueOf(c.get(Calendar.YEAR))+String.valueOf(c.get(Calendar.MONTH))+String.valueOf(c.get(Calendar.DATE))+String.valueOf(c.get(Calendar.HOUR))+String.valueOf(c.get(Calendar.MINUTE));
            ps.setString(9,str);
            ps.executeUpdate();
            ps.close();
            con.close();
            return "success+"+str;
        }catch(SQLException e)
        {
            System.out.println(e.getMessage());
            return "fail";
        }
    }
   public  String ask(String account)         //查询
    {
        connection();
        try{
            Statement s=con.createStatement();
            ResultSet rs=s.executeQuery("select * from Account");
            while(rs.next()){
                if(rs.getString("账号").equals(account)) break;
            }
            String str="success+"+account+"+"+rs.getString("姓名")+"+"+rs.getString("性别")+"+"+rs.getString("身份证号码")+"+"+rs.getString("地址")+"+"+rs.getString("固定电话")+"+"+String.valueOf(rs.getDouble("余额"))+"+"+rs.getString("备注");
            s.close();
            con.close();
            return str;
        }catch(SQLException e){ return "fail"; }
    }

⌨️ 快捷键说明

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