📄 bankthreadserver.java
字号:
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 + -