?? student.java
字號:
import java.awt.*;
import java.sql.*;
public class student extends Frame
{
public student() //構造函數
{
super("student");
pack();
reshape(200,100,600,400);
show();
}
public static void main(String args[]) //定義主窗口
{
student myWindow=new student();
MenuBar m=new MenuBar();
Menu m1=new Menu("文件");
m1.add(new MenuItem("添加數據"));
m1.add(new MenuItem("刪除數據"));
m1.add(new MenuItem("修改數據"));
m1.add(new MenuItem("查詢數據"));
m1.add(new MenuItem("退出系統"));
m.add(m1);
myWindow.setMenuBar(m);
Panel p=new Panel();
p.add(new Button("添加數據"));
p.add(new Button("刪除數據"));
p.add(new Button("修改數據"));
p.add(new Button("查詢數據"));
p.add(new Button("退出系統"));
myWindow.add("South",p);
Panel ps=new Panel();
ps.setFont(new Font("宋體",Font.PLAIN,30));
ps.add(new Label("簡單學生數據庫管理"));
myWindow.add(ps);
myWindow.setTitle("簡單學生數據庫管理");
myWindow.show();
}
public boolean handleEvent(Event e) //處理主窗口事件
{
if(e.id==Event.ACTION_EVENT)
{
if(("添加數據").equals(e.arg))
{
new appendWindow(this.location());
}
if(("刪除數據").equals(e.arg))
{
new deleteWindow(this.location());
}
if(("修改數據").equals(e.arg))
{
new changeWindow(this.location());
}
if(("查詢數據").equals(e.arg))
{
new queryWindow(this.location());
}
if(("退出系統").equals(e.arg))
{
System.exit(0);
return true;
}
}
return false;
}
class appendWindow extends Frame //創建用于添加數據的窗口
{
TextField t1,t2,t3,t4,t5,t6;
int x,y; //用于控制窗口的顯示位置
appendWindow(Point point)
{
super("添加客戶數據");
setBackground(new Color(215,215,215));
reshape(20+point.x,20+point.y,350+point.x,350+point.y);
setLayout(new GridLayout(11,0,5,4));
t1=new TextField();
t2=new TextField();
t3=new TextField();
t4=new TextField();
t5=new TextField();
t6=new TextField();
Panel pp=new Panel();
pp.add(new Label("請輸入詳細信息"));
add(pp);
Panel p1=new Panel();
p1.setLayout(new BorderLayout());
p1.add("West",new Label("學號"));
p1.add("Center",t1);
add(p1);
Panel p2=new Panel();
p2.setLayout(new BorderLayout());
p2.add("West",new Label("姓名"));
p2.add("Center",t2);
add(p2);
Panel p3=new Panel();
p3.setLayout(new BorderLayout());
p3.add("West",new Label("年齡"));
p3.add("Center",t3);
add(p3);
Panel p4=new Panel();
p4.setLayout(new BorderLayout());
p4.add("West",new Label("性別"));
p4.add("Center",t4);
add(p4);
Panel p5=new Panel();
p5.setLayout(new BorderLayout());
p5.add("West",new Label("電子郵件"));
p5.add("Center",t5);
add(p5);
Panel p6=new Panel();
p6.setLayout(new BorderLayout());
p6.add("West",new Label("電話"));
p6.add("Center",t6);
add(p6);
Panel p7=new Panel();
p7.add(new Button("確定"));
p7.add(new Button("清除"));
p7.add(new Button("退出"));
add(p7);
add(new Label(""));
Panel p8=new Panel();
p8.add(new Label("學生學號為不超過10位的整數、年齡為不超過4位的整數"));
add(p8);
Panel p9=new Panel();
p9.add(new Label("學生姓名不能超過10個字;電子郵件不超過30個字"));
add(p9);
show();
}
public boolean handleEvent(Event e) //處理添加數據的窗口的事件
{
if(e.id==Event.ACTION_EVENT)
{
if(("確定").equals(e.arg))
{
appendData();
}
if(("清除").equals(e.arg))
{
t1.setText("");
t1.repaint();
t2.setText("");
t2.repaint();
t3.setText("");
t3.repaint();
t4.setText("");
t4.repaint();
t5.setText("");
t5.repaint();
t6.setText("");
t6.repaint();
}
if(("退出").equals(e.arg))
{
dispose();
return true;
}
}
return false;
}
public void appendData() //添加數據的程序
{
String st1,st2,st3,st4,st5,st6;
st1=t1.getText();
st2=t2.getText();
st3=t3.getText();
st4=t4.getText();
st5=t5.getText();
st6=t6.getText();
if(st1.length()==0)
{
new myDialog(this,"沒有輸入學號",this.location());
}
if(st2.length()==0)
{
new myDialog(this,"沒有輸入姓名",this.location());
}
if(st3.length()==0)
{
new myDialog(this,"沒有輸入年齡",this.location());
}
if(st4.length()==0)
{
new myDialog(this,"沒有輸入性別",this.location());
}
if(st5.length()==0)
{
new myDialog(this,"沒有輸入電子郵件",this.location());
}
if(st6.length()==0)
{
new myDialog(this,"沒有輸入電話",this.location());
}
else //連接數據庫并進行操作
{
try //加載jdbc-odbc橋的驅動
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){}
try //寫入數據庫
{
String url="jdbc:odbc:student";
Connection cn=DriverManager.getConnection(url,"dba","sql");
String str="INSERT INTO student(ID,Name,age,sex,email,tel)VALUES(?,?,?,?,?,?)";
PreparedStatement ps=cn.prepareStatement(str);
ps.setInt(1,Integer.parseInt(st1));
ps.setString(2,st2);
ps.setInt(3,Integer.parseInt(st3));
ps.setString(4,st4);
ps.setString(5,st5);
ps.setString(6,st6);
ps.executeUpdate();
new myDialog(this,"已成功把數據存入數據庫",this.location());
cn.close();
}
catch(SQLException e)
{
if(e.getErrorCode()==8152)
{
new myDialog(this,"輸入的數據超過指定長度",this.location());
}
else if(e.getErrorCode()==2627)
{
new myDialog(this,"已存在學號相同的學生",this.location());
}
else
{
new myDialog(this,"程序出錯信息:"+e.getMessage(),this.location());
}
}
}
}
}
class deleteWindow extends Frame //創建用于刪除數據的窗口
{
TextField t1;
int x,y;
deleteWindow(Point point)
{
super("刪除學生數據");
setBackground(new Color(215,215,215));
reshape(80+point.x,80+point.y,200+point.x,120+point.y);
setLayout(new GridLayout(5,0,2,5));
t1=new TextField("");
add(new Label(""));
Panel pp=new Panel();
pp.add(new Label("請輸入想要刪除的學生的學號"));
add("North",pp);
Panel p3=new Panel();
p3.setLayout(new GridLayout(0,3,0,0));
p3.add("West",new Label(""));
p3.add("Center",t1);
p3.add("East",new Label(""));
add("Center",p3);
Panel p=new Panel();
p.add(new Button("確定"));
p.add(new Button("清除"));
p.add(new Button("退出"));
add("South",p);
show();
}
public boolean handleEvent(Event e) //處理刪除數據的窗口的事件
{
if(e.id==Event.ACTION_EVENT)
{
if(("確定").equals(e.arg))
{
deleteData();
}
if(("清除").equals(e.arg))
{
t1.setText("");
t1.repaint();
}
if(("退出").equals(e.arg))
{
dispose();
return true;
}
}
return false;
}
public void deleteData() //刪除數據的程序
{
String st1;
st1=t1.getText();
if(st1.length()==0)
{
new myDialog(this,"沒有輸入學號",this.location());
}
else //連接數據庫并進行操作
{
try //加載jdbc-odbc橋的驅動
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){}
try //更新數據庫
{
String url="jdbc:odbc:student";
Connection cn=DriverManager.getConnection(url,"dba","sql");
String str="DELETE FROM student WHERE ID=?";
PreparedStatement ps=cn.prepareStatement(str);
ps.setInt(1,Integer.parseInt(st1));
int n=ps.executeUpdate();
if(n!=0)
{
new myDialog(this,"已成功刪除學生信息",this.location());
}
else
{
new myDialog(this,"輸入的學號不存在",this.location());
}
cn.close();
}
catch(Exception e)
{
new myDialog(this,"程序出錯信息:"+e.getMessage(),this.location());
}
}
}
}
class myDialog extends Dialog
{
int x,y;
myDialog(Frame f,String s,Point p)
{
super(f,true);
add("Center",(new Panel()).add(new Label(s)));
x=40+p.x;
y=40+p.y;
move(x,y);
pack();
show();
}
public boolean handleEvent(Event e)
{
if(e.id==Event.WINDOW_DESTROY)
{
dispose();
return true;
}
return false;
}
}
class changeWindow extends Frame
{
TextField t1;
int x,y;
changeWindow(Point point)
{
super("修改學生數據");
setBackground(new Color(215,215,215));
reshape(80+point.x,80+point.y,200+point.x,120+point.y);
setLayout(new GridLayout(5,0,2,5));
t1=new TextField("");
add(new Label(""));
Panel pp=new Panel();
pp.add(new Label("請輸入想要修改的學生的學號"));
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -