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

📄 virtualcommunity.java

📁 网上虚拟社区
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -