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

📄 sman.java

📁 即时通讯
💻 JAVA
字号:
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.Date;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.lang.String;

public class Sman extends Frame
{
	static TextArea ta,msgta;
	static TextField tf=null;
	static Sman f;
	
	static String  sqlURL  =  "jdbc:odbc:ICQdb";//ICQdb是dsn名
	static String ver="1.0.0";
	static Connection  con;
	static Statement  stmt;
	static ResultSet  rs;
	static Frame msgf=null;
	static int rsWidth=10;
	
	public Sman(String title)
	{
		//this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dispose();System.exit(0);}});
		setTitle(title);
	}
	
	public static void main(String args[])
	{
		f = new Sman("ICQserver Manager "+ver);
		f.setIconImage(f.getToolkit().getImage("js.gif"));
		f.setBounds(50,100,700,400);
		f.setLayout(new BorderLayout());
		ta=new TextArea();
		ta.setEditable(false);
		f.add("Center",ta);
		tf=new TextField();
		f.add("South",tf);
		f.setVisible(true);
		
		msg("ICQServer manager");
		msg("   designer 张鹏 by java.GUST workgroup."+ver);
		msg("   http://www.ebsee.com");
		msg("   Email:gustteac@netease.com\n");
		f.help();
		connDB();
		
	}
	public boolean handleEvent(Event evt)
	{
		switch (evt.id){
		case Event.WINDOW_DESTROY:
			//	{dispose();System.exit(0);return true;}
			msg("正在退出...");
			try{closeDB();}catch (Exception e){ICQserver.errmsg("  When close the server error.serverException:"+e);}
			System.exit(0);
			break;
		default:
		}
		return super.handleEvent(evt);
	}
	public boolean keyUp(Event evt,int key)
	{
		if(key==10){
			try{
				String t=tf.getText().trim().toLowerCase();
				msg(".>"+t);
				int ch=request(t);
				switch(ch){
				case 1:sql(t.substring(t.lastIndexOf('!')+1));break;
				case 2:rs.next();msg("\n 执行成功.");break;
				case 3:dispose();System.exit(0);break;
				case 4:ta.setText("");break;
				case 5:rsListAll();break;
				case 6:rsList();break;
				case 7:
				case 8:help();break;
				case 9:msg(ver);break;
				case 11:rsget(t.substring(t.indexOf(' ')));break;
				case 12:count();break;
				default:msg("不能识别的命令.");
				}
			}catch(Exception e){msg("  ICQserver.keyUp() error:"+e);}
			tf.setText("");
		}
		return true;
	}
	
	int request(String s)
	{
		try{
			String cmd=null;
			if(s.length()==0)return -1;
			if(s.indexOf('!')==0)return 1;
			else{
				if(s.indexOf(' ')!=-1)cmd=s.substring(0,s.indexOf(' '));
				else cmd=s;
				if(cmd.equals("next"))return 2;
				if(cmd.equals("quit"))return 3;
				if(cmd.equals("clear"))return 4;
				if(cmd.equals("listall"))return 5;
				if(cmd.equals("list"))return 6;
				if(cmd.equals("help"))return 7;
				if(cmd.equals("?"))return 8;
				if(cmd.equals("ver"))return 9;
				if(cmd.equals("bc"))return 10;
				if(cmd.equals("get"))return 11;
				if(cmd.equals("count"))return 12;
				return -1;
			}
		}catch(Exception e){msg("  ICQserver.request() error:"+e);return -1;}
	}
	void help(){
		msg(" ?     帮助");
		msg(" help  帮助");
		msg(" clear 清屏");
		msg(" quit  退出ICQ服务器");
		msg(" ver   查看版本");
		msg(" !     执行sql命令.");
		msg("         !select * from icqno where icqno=8888                         查询");
		msg("         !insert into icqNo (icqNo,nick,password) values('1','2','3')  添加");
		msg("         !update icqNo set nick='a' where icqno=1234                   修改");
		msg("         !delete from icqNo where icqno=0                              删除");
		msg(" get ... 获得字段值");
		msg(" next   移到下一个记录.");
		msg(" show   显示信息窗.");
		msg(" hide   关闭信息窗.");
		msg(" count  统计在线人数.");
	}
	void sql(String s){
		try{
			if(s.indexOf(' ')==-1){msg("SQL 命令出错。");return;}
			
			if(s.substring(0,s.indexOf(' ')).equalsIgnoreCase("select")){
				rs  =  stmt.executeQuery(s);
				if(rs.next())msg(" 执行成功。");
				else msg(" 没有找到相应的记录。");
			}
			else{
				stmt.executeUpdate(s);
				msg(" 执行成功。");
			}
		}catch(Exception e){msg(" 出错:"+e);}
	}
	void rsget(String s){
		try{
			String r=rs.getString(s);
			msg(" 执行成功 "+s+"="+r);
		}catch(Exception e){msg(" 出错:"+e);}
	}
	void count(){}


	static void connDB(){		
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			con  =  DriverManager.getConnection(sqlURL);
			stmt  =  con.createStatement();
		}
		catch(ClassNotFoundException  ex)  {System.err.println("ClassNotFoundException :  "  +  ex.getMessage());}
		catch(SQLException  ex){System.err.println("SQLException:  "  +  ex.getMessage());}
	}
	static void closeDB(){
		try{
			stmt.close();
			con.close();
		}catch(SQLException  ex){ICQserver.errmsg("SQLException:  "  +  ex.getMessage());}
	}
	private void rsList()
	{
		try{
			ResultSetMetaData rsmd = rs.getMetaData();
			int numberOfColumns = rsmd.getColumnCount();
			String record="";
			for(int i=1;i<=numberOfColumns;i++){
				String s=rs.getString(i)+"          ";
				s=s.substring(0,rsWidth)+"|";
				record+=s;
			}
			msg(record);
		}catch(SQLException sqle){msg("   rsList() error:"+sqle);sqle.printStackTrace();}
	}
	private void rsListAll()
	{
		try{
			ResultSetMetaData rsmd = rs.getMetaData();
			int numberOfColumns = rsmd.getColumnCount();
			String fieldName="";
			for(int i=1;i<numberOfColumns;i++){
				String s=rsmd.getColumnName(i)+"          ";
				s=s.substring(0,rsWidth);
				fieldName+=s+" ";
			}
			msg(fieldName);
			while(rs.next()){rsList();}
		}catch(SQLException sqle){msg("   rsListAll() error:"+sqle);sqle.printStackTrace();}
	}
	private static void msg(String s){ta.append(s+"\n");ta.transferFocus();}
}

⌨️ 快捷键说明

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