virtualcommunity.java

来自「网上虚拟社区」· Java 代码 · 共 606 行 · 第 1/2 页

JAVA
606
字号
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 void adddish(String name,double price){
        theeatery.adddish(name,price);
	}
	
	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 itsname = ?");
			stat.setString(1, soft);
			ResultSet result = stat.executeQuery();
			result.next();
			double price = result.getDouble("price");
			addOperator(name,"putin",price,result.getString("needer"),soft);
			stat = conn.prepareStatement("UPDATE Software"
					+ " SET settled = 2"
					+ " WHERE itsname = ? ");
			stat.setString(1, soft);
			stat.executeUpdate();			
			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("select * from Software"
					+ " WHERE itsname = ?  and empolder = ?");
			stat.setString(1, soft);
			stat.setString(2, name);
			String needer;
			String description;
			double sellprice;
			ResultSet result = stat.executeQuery();
			if(result.next()){
//				System.out.println("hereif");
				needer = result.getString("needer");
				description = result.getString("describe");
				stat = conn.prepareStatement("UPDATE Software"
						+ " SET price = ?"
						+ " WHERE itsname = ? and empolder = ?");
				stat.setDouble(1, price);
				stat.setString(2, soft);
				stat.setString(3, name);
				stat.executeUpdate();
			}
			else{
				stat = conn.prepareStatement("select * from Software"
							+ " WHERE itsname = ? ");
				stat.setString(1, soft);
				result = stat.executeQuery();
				result.next();
				needer = result.getString("needer");
				description = result.getString("describe");
				sellprice = result.getDouble("sellingprice");
				if(result.getString("empolder").equals("0")){
//					needer = result.getString("needer");
//					description = result.getString("describe");
					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();
				}
				else{
					System.out.println("hereinelse");
				    stat = conn.prepareStatement("insert into Software" +
						" (itsname,describe,price,needer,empolder,sellingprice) "+ 
						" values(?,?,?,?,?,?)");
				    stat.setString(1, soft);
				    stat.setString(2, description);
				    stat.setDouble(3, price);
				    stat.setString(4, needer);
				    stat.setString(5, name);
				    stat.setDouble(6, sellprice);
				    stat.executeUpdate();
				}
			}
			addOperator(name,"bid",price,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();
//			System.out.println(name);
			while(result.next()){
				double temp = result.getDouble("price");
				String empolder = result.getString("empolder");
				if(empolder.equals(name)){
				     String query = "UPDATE Software"
					        + " SET settled = 1"
					        + " WHERE itsname = ?";
				     stat =conn.prepareStatement(query);
				     stat.setString(1, soft);	
				     stat.executeUpdate();
					deposit(myAccount,mypin,temp);
					addOperator(result.getString("needer"),"settlesoftware",temp,empolder,soft);
				}
				else{					
					String query = "delete from Software"
				        + " WHERE itsname = ? and empolder = ?";
			        stat =conn.prepareStatement(query);
			        stat.setString(1, soft);	
			        stat.setString(2, empolder);	
			        stat.executeUpdate();     
				}
			}

			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 = ? " 

⌨️ 快捷键说明

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