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