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

  • 格式:doc
  • 大小:61.00 KB
  • 文档页数:10

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中文本取出,忽略前后空格后赋给变量xingming

String sql=”select * from xuesheng where xingming='”+xingming+"'”;

//将SQL语句赋给String类型变量sql

xsxx2=new Xsxx(sql); //将String类型变量sql作为参数NEW一个Xsxx类的对象xsxx2

bg1。setModel(xsxx2);

//将表bg1的数据模型设为 newModel,并向其注册以获取来自新数据模型的侦听器通知。

}

else if(e。getActionCommand().equals("tianjia”))

Tianjia tj=new Tianjia(this,”添加学生信息",true);

xsxx2=new Xsxx(); //无参数传递的NEW一个Xsxx类的对象xsxx2

bg1。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

try { 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