📄 virtualcommunity.java
字号:
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.util.Vector;
import javax.swing.*;
import java.rmi.*;
public class VirtualCommunity{
private DBOperator dbOperator;
private BankServerInterface thebank;
private Eatery theeatery;
private String myAccount = "000001";
private String mypin = "09005435";
// private double balance;
public VirtualCommunity(){
String Driver = "";//JOptionPane.showInputDialog(null, "Enter the driver:",null, JOptionPane.INFORMATION_MESSAGE);
String url ="";// JOptionPane.showInputDialog(null, "Enter the url:",null, JOptionPane.INFORMATION_MESSAGE);
if(Driver.equals("")) Driver = "sun.jdbc.odbc.JdbcOdbcDriver";
if(url.equals("")) url = "jdbc:odbc:VCDB";
dbOperator = new DBOperator(Driver,url);
theeatery = new Eatery();
myAccount = "000001";
mypin = "09005435";
// System.out.println(Driver);
// System.out.println(url);
initializeRMI();
// System.out.println(findBalance("000001","123456"));
}
/* public static void main(String[] args){
VirtualCommunity community=new VirtualCommunity();
try{
community.orderdish("huangyuping","beef");
// Virtualperson me = new Virtualperson("sunzheng","changshu","123456","000003");
// System.out.println( community.addvirtual("xiaoqiang", "123456",0,"609","0005"));
// System.out.println(me.add());
// System.out.println( community.addvirtual("xiaoqiang", "123456",0,"609","0005"));
// System.out.println(community.changemessage("huangyuping", "123456", "huangyuping", "123456", "qidong", "000003"));
}catch(Exception ex){ System.out.println(ex);}
}*/
public void settle(String name){
double money = theeatery.settle(name);
deposit("000001","09005435",money);
}
public boolean addsoftware(String soft,String description,String needer,double sellingprice)throws SQLException{
Connection conn = dbOperator.getConnection();
PreparedStatement stat = conn
.prepareStatement("SELECT * FROM Software WHERE itsname = ? ");
stat.setString(1, soft);
ResultSet result = stat.executeQuery();
if (result.next()) {
System.out.println("The Name has already exist!");
conn.close();
return false;
}
else {
stat =conn.prepareStatement("insert into Software(itsname, describe ,needer,sellingprice) values(?, ?,?,?)");
stat.setString(1, soft);
stat.setString(2, description);
stat.setString(3, needer);
stat.setDouble(4, sellingprice);
stat.executeUpdate();
}
addOperator(needer,"addsoftware",sellingprice,"Virtualcommunity",soft);
conn.close();
return true;
}
public void putin(String name,String soft,String account)throws SQLException{
Connection conn = dbOperator.getConnection();
try {
PreparedStatement stat = conn.prepareStatement("SELECT * FROM Software WHERE itename = ?");
stat.setString(1, soft);
ResultSet result = stat.executeQuery();
double price = result.getDouble("price");
addOperator(name,"putin",price,result.getString("needer"),soft);
result.deleteRow();
if(withdraw(myAccount,mypin,price)){
deposit(account,price);
}
} finally {
conn.close();
}
}
public void bid(String name,String soft,double price)throws SQLException{
Connection conn = dbOperator.getConnection();
try {
PreparedStatement stat = conn.prepareStatement("UPDATE Software"
+ " SET price = ?"
+ " WHERE itsname = ?");
stat.setDouble(1, price);
stat.setString(2, soft);
stat.executeUpdate();
stat = conn.prepareStatement("UPDATE Software"
+ " SET empolder = ?"
+ " WHERE itsname = ?");
stat.setString(1, name);
stat.setString(2, soft);
stat.executeUpdate();
stat = conn.prepareStatement("select * from Software"
+ " WHERE itsname = ?");
stat.setString(1, soft);
// stat.executeUpdate();
ResultSet result = stat.executeQuery();
if(result.next())
addOperator(name,"bid",price,result.getString("needer"),soft);
} finally {
conn.close();
}
}
public void orderdish(String name,String dish){
theeatery.orderdish(name, dish);
//点菜不加入到operator中。餐馆自己记录。
}
public void settlesoftware(String name,String soft) throws RemoteException{
try{
Connection conn = dbOperator.getConnection();
PreparedStatement stat = conn.prepareStatement("SELECT * FROM Software WHERE itsname = ?");
stat.setString(1, soft);
ResultSet result = stat.executeQuery();
if(result.next()&&result.getString("needer").equals(name)){
String query = "UPDATE Software"
+ " SET settled = 1"
+ " WHERE itsname = ?";
stat =conn.prepareStatement(query);
stat.setString(1, soft);
stat.executeUpdate();
}
else{
System.out.println("The Software are not exist!");
}
double temp = result.getDouble("price");
deposit(myAccount,mypin,temp);
addOperator(name,"settlesoftware",temp,result.getString("empolder"),soft);
conn.close();
}
catch(SQLException ex){
System.out.println(ex);
}
}
public void buysoftware(String name,String soft) throws RemoteException{
try{
Connection conn = dbOperator.getConnection();
PreparedStatement stat = conn.prepareStatement("SELECT * FROM Software WHERE itsname = ?");
stat.setString(1, soft);
ResultSet result = stat.executeQuery();
if(result.next()){
double price = result.getDouble("price");
String query ="select * from Virtualperson where Virtualname = ? and genere = 2";
stat =conn.prepareStatement(query);
stat.setString(1, result.getString("needer"));
ResultSet ret = stat.executeQuery();
if(ret.next()){
deposit(ret.getString("Account"),price);
}
else
System.out.println("The Account are not exist!");
query = "UPDATE Software"
+ " SET sellcount = sellcount+1"
+ " WHERE itsname = ?";
stat =conn.prepareStatement(query);
stat.setString(1, soft);
stat.executeUpdate();
}
else{
System.out.println("The Software are not exist!");
}
double temp = result.getDouble("price");
addOperator(name,"buysoftware",temp,result.getString("needer"),soft);
conn.close();
}
catch(SQLException ex){
System.out.println(ex);
}
}
protected void initializeRMI(){
String url = JOptionPane.showInputDialog(null, "Enter the IP address of the bank:",null, JOptionPane.INFORMATION_MESSAGE);
if(url.equals("")) url = "192.168.1.3";
if(url.equals("default"))
url = "";
url = "rmi://"+url+"/";
try{
// System.out.println(url);
thebank = (BankServerInterface)Naming.lookup(url+"BankServerInterfaceImpl");
System.out.println("Server objecct "+thebank+" found");
}
catch(Exception ex){
System.out.println(ex);
}
}
public String changemessage(String Virtualname,double genere,String oldpassword,String name, String password,String Address,String Account) throws SQLException {
Connection conn = dbOperator.getConnection();
try {
PreparedStatement stat = conn
.prepareStatement("SELECT * FROM Virtualperson WHERE Virtualname = ? and genere = ?");
stat.setString(1, name);
stat.setDouble(2, genere);
ResultSet result = stat.executeQuery();
if (result.next()&&!Virtualname.equals(name)) {
System.out.println("The Name has already exist!");
conn.close();
return "The Name has already exist!";
}
stat = conn.prepareStatement("SELECT * FROM Virtualperson WHERE Virtualname = ? and Password = ?");
stat.setString(1, Virtualname);
stat.setString(2, oldpassword);
ResultSet result1 = stat.executeQuery();
if (!result1.next()) {
System.out.println("The Name are not exist!");
conn.close();
return "Your had not register a member or you inputed a wrong password!";
}
else {
String ID = result1.getString("ID");
stat =conn.prepareStatement("UPDATE Virtualperson"
+ " SET Virtualname = ? "
+ " WHERE ID = ?");
stat.setString(1, name);
stat.setString(2,ID );
stat.executeUpdate();
stat =conn.prepareStatement("UPDATE Virtualperson"
+ " SET Password = ? "
+ " WHERE ID = ?");
stat.setString(1, password);
stat.setString(2, ID);
stat.executeUpdate();
stat =conn.prepareStatement("UPDATE Virtualperson"
+ " SET Address = ? "
+ " WHERE ID = ?");
stat.setString(1, Address);
stat.setString(2, ID);
stat.executeUpdate();
stat =conn.prepareStatement("UPDATE Virtualperson"
+ " SET Account = ? "
+ " WHERE ID = ?");
stat.setString(1, Account);
stat.setString(2, ID);
stat.executeUpdate();
}
conn.close();
addOperator(Virtualname,"changemessage", 0, name, "message");
return "Succeed in changing message!";
} catch (SQLException ex) {
System.out.println(ex);
return "Sorry,there\'s something wrong witn SQL,please retry letter!";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -