📄 sman.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 + -