收藏 分销(赏)

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

上传人:精*** 文档编号:4063909 上传时间:2024-07-26 格式:DOC 页数:9 大小:59.04KB 下载积分:6 金币
下载 相关 举报
简单学生管理信息系统源代码.doc_第1页
第1页 / 共9页
简单学生管理信息系统源代码.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
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 { 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 对象。 while(rs.next()) { Vector hang=new Vector(); hang。add(rs。getString(1)); //以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值. hang.add(rs。getString(2)); hang。add(rs.getString(3)); hang。add(rs.getInt(4)); hang。add(rs。getString(5)); hang.add(rs.getString(6)); jilu.add(hang); } } catch (Exception e){} finally { try { if(rs!=null) { rs。close(); } if(ps!=null) { ps.close(); } if(ct!=null) { ct.close(); } } catch (Exception e){} } } } class Xiugai extends JDialog implements ActionListener //JDialog是创建对话框窗口的主要类 { JLabel bq1,bq2,bq3,bq4,bq5,bq6; JTextField wbk1,wbk2,wbk3,wbk4,wbk5,wbk6; JButton an1,an2; JPanel mb1,mb2,mb3,mb4; public Xiugai(Frame fck,String ckm,Boolean msck,Xsxx xsxx2,int hang) { super(fck,ckm,msck); bq1=new JLabel(" 学号 ”); bq2=new JLabel(" 姓名 ”); bq3=new JLabel(” 性别 "); bq4=new JLabel(” 年龄 ”); bq5=new JLabel(" 籍贯 "); bq6=new JLabel(" 院系 "); wbk1=new JTextField(5); wbk1。setText((String)xsxx2.getValueAt(hang,0)); wbk1。setEditable(false); wbk2=new JTextField(5); wbk2。setText((String)xsxx2。getValueAt(hang,1)); wbk3=new JTextField(5); wbk3.setText((String)xsxx2。getValueAt(hang,2)); wbk4=new JTextField(5); wbk4。setText((String)xsxx2。getValueAt(hang,3)。toString()); wbk5=new JTextField(5); wbk5。setText((String)xsxx2.getValueAt(hang,4)); wbk6=new JTextField(5); wbk6.setText((String)xsxx2。getValueAt(hang,5)); an1=new JButton(”修改"); an1.addActionListener(this); an1。setActionCommand("xiugai1"); an2=new JButton(”取消"); an2.addActionListener(this); an2.setActionCommand(”quxiao"); mb1=new JPanel(); mb2=new JPanel(); mb3=new JPanel(); mb4=new JPanel(); mb1.setLayout(new GridLayout(6,1)); mb2.setLayout(new GridLayout(6,1)); mb1。add(bq1); mb1。add(bq2); mb1.add(bq3); mb1。add(bq4); mb1。add(bq5); mb1。add(bq6); mb2。add(wbk1); mb2。add(wbk2); mb2。add(wbk3); mb2。add(wbk4); mb2。add(wbk5); mb2。add(wbk6); mb3.add(an1); mb3。add(an2); this。add(mb1,BorderLayout.WEST); this.add(mb2); this。add(mb3,BorderLayout。SOUTH); this。add(mb4,BorderLayout。EAST); this。setSize(370,270); this.setLocation(401,281); this。setResizable(false); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("xiugai1”)) { PreparedStatement ps=null; Connection ct=null; ResultSet rs=null; Statement sm=null; try { Class.forName("sun。jdbc.odbc.JdbcOdbcDriver”); ct=DriverManager。getConnection("jdbc:odbc:123”,”sa",”123456"); String ss=(”update xuesheng set xingming=?,xingbie=?,nianling=?,jiguan=?,yuanxi=? where xuehao=?”); ps=ct。prepareStatement(ss); ps.setString(1,wbk2.getText()); ps.setString(2,wbk3。getText()); ps.setString(3,wbk4。getText()); ps。setString(4,wbk5。getText()); ps.setString(5,wbk6。getText()); ps.setString(6,wbk1。getText()); ps.executeUpdate(); this。dispose(); } catch (Exception e2){} finally { try { if(rs!=null) { rs。close(); } if(ps!=null) { ps。close(); } if(ct!=null) { ct。close(); } } catch (Exception e3){} } } else if(e。getActionCommand().equals(”quxiao")) { this。dispose();//关闭当前窗口 } } } class Tianjia extends JDialog implements ActionListener { JLabel bq1,bq2,bq3,bq4,bq5,bq6; JTextField wbk1,wbk2,wbk3,wbk4,wbk5,wbk6; JButton an1,an2; JPanel mb1,mb2,mb3,mb4; public Tianjia(Frame fck,String ckm,Boolean msck) { super(fck,ckm,msck); bq1=new JLabel(” 学号 "); bq2=new JLabel(" 姓名 "); bq3=new JLabel(” 性别 ”); bq4=new JLabel(" 年龄 "); bq5=new JLabel(" 籍贯 "); bq6=new JLabel(” 院系 "); wbk1=new JTextField(5); wbk2=new JTextField(5); wbk3=new JTextField(5); wbk4=new JTextField(5); wbk5=new JTextField(5); wbk6=new JTextField(5); an1=new JButton("添加”); an1.addActionListener(this); an1.setActionCommand("tianjia2"); an2=new JButton("取消"); an2。addActionListener(this); an2.setActionCommand(”quxiao”); mb1=new JPanel(); mb2=new JPanel(); mb3=new JPanel(); mb4=new JPanel(); mb1。setLayout(new GridLayout(6,1)); mb2。setLayout(new GridLayout(6,1)); mb1。add(bq1); mb1。add(bq2); mb1.add(bq3); mb1.add(bq4); mb1.add(bq5); mb1。add(bq6); mb2.add(wbk1); mb2.add(wbk2); mb2.add(wbk3); mb2.add(wbk4); mb2.add(wbk5); mb2.add(wbk6); mb3.add(an1); mb3。add(an2); this。add(mb1,BorderLayout.WEST); this.add(mb2); this。add(mb3,BorderLayout.SOUTH); this.add(mb4,BorderLayout。EAST); this.setSize(370,270); this。setLocation(401,281); this.setResizable(false); this.setDefaultCloseOperation(JFrame。DISPOSE_ON_CLOSE); this。setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand()。equals("tianjia2”)) { PreparedStatement ps=null; Connection ct=null; ResultSet rs=null; Statement sm=null; try { Class。forName(”sun.jdbc.odbc。JdbcOdbcDriver"); ct=DriverManager。getConnection(”jdbc:odbc:123","sa”,"123456”); String ss=("insert into xuesheng values(?,?,?,?,?,?)”); ps=ct。prepareStatement(ss); ps.setString(1,wbk1.getText()); ps.setString(2,wbk2。getText()); ps.setString(3,wbk3。getText()); ps。setString(4,wbk4。getText()); ps。setString(5,wbk5。getText()); ps。setString(6,wbk6。getText()); ps。executeUpdate(); this。dispose(); } catch (Exception e2){} finally { try { if(rs!=null) { rs。close(); } if(ps!=null) { ps.close(); } if(ct!=null) { ct.close(); } } catch (Exception e3){} } } else if(e.getActionCommand()。equals("quxiao”)) { this。dispose(); } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服