当前位置:文档之家› 简单学生管理信息系统源代码

简单学生管理信息系统源代码

package xsgl;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import java.util.Vector;import javax.swing.table.*;import java.awt.event.*;public class Xsglxt extends JFrame implements ActionListener//继承JFrame 并实现接口ActionListener{JPanel mb1,mb2;JLabel bq1;JTextField wbk1;JButton an1,an2,an3,an4;JTable bg1; //定义表格对象JScrollPane gd1;Xsxx xsxx2; //定义Xsxx类的一个对象xsxx2 public static void main(String[] args){Xsglxt xs=new Xsglxt();}public Xsglxt() //XSGLXT构造方法,用于对象初始化。

{mb1=new JPanel();bq1=new JLabel("请输入姓名");wbk1=new JTextField(10);an1=new JButton("查询");an1.addActionListener(this); //对按钮1添加监听an1.setActionCommand("chaxun"); //设置按钮1的监听信息mb1.add(bq1); mb1.add(wbk1); mb1.add(an1);mb2=new JPanel();an2=new JButton("添加");an2.addActionListener(this);an2.setActionCommand("tianjia");an3=new JButton("修改");an3.addActionListener(this);an3.setActionCommand("xiugai");an4=new JButton("删除");an4.addActionListener(this);an4.setActionCommand("shanchu");mb2.add(an2); mb2.add(an3); mb2.add(an4);xsxx2=new Xsxx();bg1=new JTable(xsxx2);gd1=new JScrollPane(bg1);this.add(gd1);this.add(mb1,"North");this.add(mb2,"South");this.setTitle("学生管理系统");this.setSize(500,400);this.setLocation(201,181);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void actionPerformed(ActionEvent e) //实现接口ActionListener中的actionPerformed抽象方法{if(e.getActionCommand().equals("chaxun")) //判断监听到的组件信息是不是"chaxun"(是不是查询按钮){String xingming=this.wbk1.getText().trim();//将本窗口的文本框1中文本取出,忽略前后空格后赋给变量xingmingString sql="select * from xuesheng where xingming='"+xingming+"'";//将SQL语句赋给String类型变量sqlxsxx2=new Xsxx(sql); //将String类型变量sql作为参数NEW一个Xsxx类的对象xsxx2bg1.setModel(xsxx2);//将表bg1的数据模型设为 newModel,并向其注册以获取来自新数据模型的侦听器通知。

}else if(e.getActionCommand().equals("tianjia")){Tianjia tj=new Tianjia(this,"添加学生信息",true);xsxx2=new Xsxx(); //无参数传递的NEW一个Xsxx类的对象xsxx2bg1.setModel(xsxx2);}else if(e.getActionCommand().equals("xiugai")){int ii=this.bg1.getSelectedRow();//使用getSelectedRow()方法返回第一个选定行的索引;如果没有选定的行,则返回 -1。

if(ii==-1){JOptionPane.showMessageDialog(this,"请选中要修改的行"); //显示一个错误对话框return;}new Xiugai(this,"修改学生信息",true,xsxx2,ii);//NEW一个修改类对象并附上相关参数,true指定对话框在显示时是否阻塞用户向其他顶层窗口输入xsxx2=new Xsxx();bg1.setModel(xsxx2);}else if(e.getActionCommand().equals("shanchu")){int ii=this.bg1.getSelectedRow();if(ii==-1){JOptionPane.showMessageDialog(this,"请选中要删除的行");return;}String st=(String)xsxx2.getValueAt(ii,0);//使用getValueAt(ii,0)方法返回第ii行的第0字段数据并强转为字符串型数据PreparedStatement ps=null;//定义一个PreparedStatement对象ps;SQL 语句被预编译并存储在 PreparedStatement 对象中Connection ct=null;//定义一个Connection对象ct;用来与特定数据库的连接。

ResultSet rs=null;//定义一个ResultSet对象rs;表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

Statement sm=null;try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//返回与带有给定字符串名的类或接口相关联的 Class 对象。

ct=DriverManager.getConnection("jdbc:odbc:123","sa","123456");//DriverManager:管理一组 JDBC 驱动程序的基本服务。

getConnection方法试图建立到给定数据库 URL 的连接。

ps=ct.prepareStatement("delete from xuesheng where xuehao=?");//prepareStatement()方法是创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。

ps.setString(1,st);//设置prepareStatement中SQL语句中第一个?位置为st中的字符串ps.executeUpdate();//在此 PreparedStatement 对象中执行 SQL 语句。

} catch (Exception e2){}finally{t ry {if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}} catch (Exception e3){}}xsxx2=new Xsxx();bg1.setModel(xsxx2);}}}class Xsxx extends AbstractTableModel{Vector ziduan,jilu;PreparedStatement ps=null;Connection ct=null;ResultSet rs=null;public int getRowCount()// AbstractTableModel抽象类中的一个抽象方法(子类中必须实现),返回该模型中的行数。

JTable 使用此方法来确定它应该显示多少行。

{return this.jilu.size();}public int getColumnCount() //返回该模型中的列数。

JTable 使用此方法来确定在默认情况下它应该创建并显示多少列。

{return this.ziduan.size();}public Object getValueAt(int hang, int lie) //返回指定行和列对应位置的单元格值。

{return ((Vector)this.jilu.get(hang)).get(lie);}public Xsxx(){this.sqlyj("select * from xuesheng");}public Xsxx(String ss){this.sqlyj(ss);}public String getColumnName(int e) //返回 e 位置的列的名称.{return (String)this.ziduan.get(e);}public void sqlyj(String sql){ziduan=new Vector();ziduan.add("学号");ziduan.add("姓名");ziduan.add("性别");ziduan.add("年龄");ziduan.add("籍贯");ziduan.add("所在院系");jilu=new Vector();try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");ct=DriverManager.getConnection("jdbc:odbc:123","sa","123456");ps=ct.prepareStatement(sql);rs=ps.executeQuery();//executeQuery()方法是在此 PreparedStatement 对象ps中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。

相关主题