java版本的学生管理系统

  1 import java.awt.BorderLayout;
  2 import java.awt.Color;
  3 import java.awt.Frame;
  4 import java.awt.event.ActionEvent;
  5 import java.awt.event.ActionListener;
  6 import java.io.UnsupportedEncodingException;
  7 import java.sql.Connection;
  8 import java.sql.DriverManager;
  9 import java.sql.PreparedStatement;
 10 import java.sql.ResultSet;
 11 import java.sql.SQLException;
 12 import java.util.Vector;
 13
 14 import javax.swing.Box;
 15 import javax.swing.ButtonGroup;
 16 import javax.swing.JButton;
 17 import javax.swing.JDialog;
 18 import javax.swing.JFrame;
 19 import javax.swing.JLabel;
 20 import javax.swing.JOptionPane;
 21 import javax.swing.JPanel;
 22 import javax.swing.JRadioButton;
 23 import javax.swing.JScrollPane;
 24 import javax.swing.JTable;
 25 import javax.swing.JTextField;
 26 import javax.swing.plaf.OptionPaneUI;
 27 import javax.swing.table.AbstractTableModel;
 28
 29 /**
 30  * @author Administrator mini版学生管理系统 实现: crud所有功能
 31  */
 32
 33 public class Demo_4 {
 34
 35     /**
 36      * @param args
 37      *            作者: 龚细军 date: 2014/11/23
 38      *            完成时间: 2014/11/25/
 39      */
 40
 41     public static void main(String args[]) {
 42         // 创建一个面板对象
 43         MyJFrame mf = new MyJFrame();
 44     }
 45 }
 46
 47 // 定义一个我自己的主界面
 48 class MyJFrame extends JFrame implements ActionListener {
 49
 50     JTable jt;
 51     MyJTable mjt;
 52     // 必要地分布板块
 53     JPanel jpup, jpdown, jpcenter;
 54     // 实现数据的 增删查改即crud操作
 55     JButton[] button = new JButton[4];
 56     // 用来辅助查找模块的框框
 57     JTextField text;
 58
 59     JScrollPane jsp = null;
 60
 61     /*
 62      * 构造函数 功能: 实现窗口的初始化
 63      */
 64     MyJFrame() {
 65         mjt = new MyJTable();
 66         jt = new JTable(mjt);
 67         // jt.setModel(mjt);
 68         jpup = new JPanel();
 69         jpdown = new JPanel();
 70         jpcenter = new JPanel();
 71         text = new JTextField(14);
 72         button[0] = new JButton(" 查询  ");
 73         button[1] = new JButton(" 添加  ");
 74         button[2] = new JButton(" 修改  ");
 75         button[3] = new JButton(" 删除  ");
 76         for (int i = 0; i < 4; i++)
 77             button[i].addActionListener(this);
 78         jpup.add(new JLabel("用户信息"));
 79         jpup.add(text);
 80         jpup.add(button[0]);
 81         for (int i = 1; i < 4; i++)
 82             jpdown.add(button[i]);
 83         jt.setBackground(Color.CYAN);
 84         jsp = new JScrollPane(jt);
 85         jpcenter.add(jsp);
 86         // 设置一些布局 borderLaRyou
 87         this.add(jpup, BorderLayout.NORTH);
 88         this.add(jpcenter, BorderLayout.CENTER);
 89         this.add(jpdown, BorderLayout.SOUTH);
 90         // 设置窗口的标题
 91         this.setTitle("mini版的学生管理系统");
 92         // 设置窗口的尺寸
 93         this.setSize(500, 300);
 94         // 窗口的尺寸不可改变
 95         // this.setResizable(false);
 96         // 设置窗口是否可见
 97         this.setVisible(true);
 98         // 设置窗口的注销模式
 99         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
100     }
101
102     @Override
103     public void actionPerformed(ActionEvent e) {
104         // TODO Auto-generated method stub
105         int i = 0;
106         for (i = 0; i < 4; i++)
107             if (e.getSource() == button[i])
108                 break;
109         String cmd = text.getText().toString().trim();
110         switch (i) {
111         // 查询
112         case 0:
113             if (cmd.isEmpty()) {
114                 JOptionPane.showMessageDialog(button[0], "请输入用户名");
115                 mjt = new MyJTable();
116             } else
117                 mjt = new MyJTable(cmd);
118             jt.setModel(mjt);
119             break;
120         // 添加
121         case 1:
122             AddJFrame myAdd = new AddJFrame(this, true);
123             mjt = new MyJTable();
124             jt.setModel(mjt);
125             break;
126         // 修改
127         case 2:
128             // 需要得到我们点中的行列号
129             int rownum = this.jt.getSelectedRow();
130             if (-1 == rownum) {
131                 JOptionPane.showMessageDialog(this, "请选中你要修改人");
132                 return;
133             } else {
134                 String name = (String) mjt.getValueAt(rownum, 0);
135                 UpdataJFrame Uj = new UpdataJFrame(this, true, name);
136                 mjt = new MyJTable();
137                 jt.setModel(mjt);
138             }
139             break;
140         // 删除
141         case 3:
142             int row = this.jt.getSelectedRow();
143             if (-1 == row) {
144                 JOptionPane.showMessageDialog(this, "请选中你要修改人");
145                 return;
146             } else {
147                 String name = (String) mjt.getValueAt(row, 1);
148                 Delete det = new Delete(this, name.trim(), true);
149             }
150             mjt = new MyJTable();
151             jt.setModel(mjt);
152             break;
153         // 啥也不干
154         default:
155
156             break;
157         }
158     }
159
160 }
161
162 // 定义一个自己的table类
163 class MyJTable extends AbstractTableModel {
164
165     // sql的几个变量
166     Connection ct = null;
167     PreparedStatement ps = null;
168     ResultSet rs = null;
169     Vector rowdata, colName;
170
171     // 非带参数的构造函数,用于初始化
172     MyJTable() {
173         this.func("", false);
174     }
175
176     // 带参数的构造函数,用于查询
177     MyJTable(String name) {
178         this.func(name, true);
179     };
180
181     public void func(String name, boolean tag) {
182         String sql;
183         try {
184             // 加载上jdbc_odbc驱动
185             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
186             // 连接sql
187             ct = DriverManager.getConnection(
188                             "jdbc:microsoft:sqlserver://localhost:1434;databaseName=Demo_1",
189                             "sa", "869261636123");
190             if (!tag) {
191                 sql = new String("select * from stu");
192                 ps = ct.prepareStatement(sql);
193             } else {
194                 sql = new String("Select * from Stu where Stuname=?");
195                 ps = ct.prepareStatement(sql);
196                 ps.setString(1, name);
197             }
198             rs = ps.executeQuery();
199             /*
200              * 设置表单的属性
201              */
202             colName = new Vector();
203             rowdata = new Vector();
204             String[] ss = { "学号", "名字", "性别", "年龄", "家庭地址", "系别" };
205             for (int i = 0; i < 6; i++)
206                 colName.add(ss[i]);
207             while (rs.next()) {
208                 Vector hang = new Vector();
209                 for (int i = 1; i <= 6; i++) {
210                     if (4 == i)
211                         hang.add(rs.getInt(i));
212                     else {
213                         String st = new String(
214                                 (rs.getString(i)).getBytes("gbk"), "gb2312");
215                         hang.add(st);
216                     }
217                 }
218                 rowdata.add(hang);
219             }
220         } catch (Exception e) {
221             // TODO Auto-generated catch block
222             e.printStackTrace();
223         } finally {
224             // 关闭一些窗口
225             try {
226                 if (rs != null)
227                     rs.close();
228                 if (ps != null)
229                     ps.close();
230                 if (ct != null)
231                     ct.close();
232             } catch (SQLException e) {
233                 // TODO Auto-generated catch block
234                 e.printStackTrace();
235             }
236         }
237     }
238
239     // 返回它的行数
240     @Override
241     public int getRowCount() {
242         // TODO Auto-generated method stub
243         return this.rowdata.size();
244     }
245
246     // 返回它的列数
247     @Override
248     public int getColumnCount() {
249         // TODO Auto-generated method stub
250         return this.colName.size();
251     }
252
253     // 返回该表单的内容
254     @Override
255     public Object getValueAt(int rowIndex, int columnIndex) {
256         // TODO Auto-generated method stub
257         return ((Vector) this.rowdata.get(rowIndex)).get(columnIndex);
258     }
259
260     @Override
261     public String getColumnName(int column) {
262         // TODO Auto-generated method stub
263         return (String) this.colName.get(column);
264     }
265 }
266
267 // 定义一个添加数据的界面
268 class AddJFrame extends JDialog implements ActionListener {
269
270     // 填写信息的空格
271     private String sex = null;
272     JTextField[] jt = new JTextField[5];
273     JButton[] jb = new JButton[2];
274     // 单选按钮
275     JRadioButton[] jradio = new JRadioButton[2];
276     // 组合单选按钮
277     ButtonGroup group;
278     // 用于设置 盒式布局 BoxLayout
279     Box[] mybox = new Box[4];
280     JPanel jp, jp1;
281     // SQL几个常用的变量类型
282     Connection ct = null;
283     PreparedStatement ps = null;
284
285     public AddJFrame(Frame Father, boolean Model) {
286         // 采用模式对话框
287         super(Father, Model);
288         for (int i = 0; i < 5; i++)
289             jt[i] = new JTextField(10);
290         jb[0] = new JButton("确认");
291         jb[0].addActionListener(this);
292         jb[1] = new JButton("取消");
293         jb[1].addActionListener(this);
294         jradio[0] = new JRadioButton("男");
295         jradio[0].addActionListener(this);
296         jradio[1] = new JRadioButton("女");
297         jradio[1].addActionListener(this);
298         // 设置水平
299         mybox[0] = Box.createVerticalBox();
300         mybox[0].add(Box.createVerticalStrut(15));
301         mybox[0].add(new JLabel("学号:"));
302         mybox[0].add(Box.createVerticalStrut(10));
303         mybox[0].add(new JLabel("名字:"));
304         mybox[0].add(Box.createVerticalStrut(20));
305         mybox[0].add(new JLabel("性别:"));
306         mybox[0].add(Box.createVerticalStrut(25));
307         mybox[0].add(new JLabel("年龄:"));
308         mybox[0].add(Box.createVerticalStrut(10));
309         mybox[0].add(new JLabel("家庭住址:"));
310         mybox[0].add(Box.createVerticalStrut(10));
311         mybox[0].add(new JLabel("系别:"));
312         mybox[0].add(Box.createVerticalStrut(10));
313         // 设置另一边的水平
314         mybox[1] = Box.createVerticalBox();
315         mybox[1].add(Box.createVerticalStrut(18));
316         mybox[1].add(jt[0]);
317         mybox[1].add(Box.createVerticalStrut(8));
318         mybox[1].add(jt[1]);
319         mybox[1].add(Box.createVerticalStrut(8));
320         jp = new JPanel();
321         // 单选群
322         group = new ButtonGroup();
323         group.add(jradio[0]);
324         group.add(jradio[1]);
325         jp.add(jradio[0]);
326         jp.add(jradio[1]);
327         mybox[1].add(jp);
328         /*
329          * group =new ButtonGroup(); group.add(jradio[0]); group.add(jradio[1]);
330          * mybox[1].add(group); 此处需要改变的 东西,改成combox来进行,或者直接改成一样的文本框也许
331          */
332         mybox[1].add(Box.createVerticalStrut(5));
333         mybox[1].add(jt[2]);
334         mybox[1].add(Box.createVerticalStrut(8));
335         mybox[1].add(jt[3]);
336         mybox[1].add(Box.createVerticalStrut(8));
337         mybox[1].add(jt[4]);
338         mybox[1].add(Box.createVerticalStrut(8));
339         // 按钮部分
340         jp1 = new JPanel();
341         jp1.add(jb[0], BorderLayout.EAST);
342         jp1.add(jb[1], BorderLayout.WEST);
343         mybox[2] = Box.createHorizontalBox();
344         mybox[2].add(mybox[0]);
345         mybox[2].add(Box.createHorizontalStrut(10));
346         mybox[2].add(mybox[1]);
347         this.add(mybox[2], BorderLayout.NORTH);
348         this.add(jp1, BorderLayout.SOUTH);
349         init();
350     }
351
352     // 显示板块部分
353     public void init() {
354         this.setTitle("个人信息板块");
355         this.setBackground(Color.magenta);
356         this.setBounds(400, 300, 300, 300);
357         this.setVisible(true);
358         // this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
359     }
360
361     @Override
362     public void actionPerformed(ActionEvent e) {
363         // TODO Auto-generated method stub
364         // 将数据写入数据库
365         if (e.getSource() == jb[0]) {
366             // 对写入的数据进行处理
367             try {
368
369                 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
370                 ct = DriverManager
371                         .getConnection(
372                                 "jdbc:microsoft:sqlserver://localhost:1434;databaseName=Demo_1",
373                                 "sa", "869261636123");
374                 ps = ct.prepareStatement("insert into stu values(?,?,?,?,?,?)");
375                 for (int i = 1, j = 0; i <= 6; i++) {
376                     if (3 == i) {
377                         // 去掉多余的空格,但是这里存在一个小bug(合理的处理为正则表达式)
378                         ps.setString(i, this.getSex().trim());
379                         // ps.setInt(i,);
380                     } else if (4 == i) {
381                         String tem = jt[j].getText().toString().trim();
382                         int value = Integer.valueOf(tem).intValue();
383                         ps.setInt(i, value);
384                         ++j;
385                     } else {
386                         ps.setString(i, jt[j].getText().toString().trim());
387                         ++j;
388                     }
389                 }
390                 int i = ps.executeUpdate();
391
392                 if (1 == i)
393                     JOptionPane.showMessageDialog(this, "添加成功!");
394                 else
395                     JOptionPane.showMessageDialog(this, "添加失败!");
396
397             } catch (Exception e1) {
398                 // TODO Auto-generated catch block
399                 e1.printStackTrace();
400             } finally {
401                 // 关闭数据库的一些调用函数
402                 try {
403                     if (ps != null)
404                         ps.close();
405                     if (ct != null)
406                         ct.close();
407                 } catch (SQLException e1) {
408                     // TODO Auto-generated catch block
409                     e1.printStackTrace();
410                 }
411             }
412             this.dispose();
413         } else if (e.getSource() == jb[0])
414             // 释放点该窗口, 退出该版面
415             this.dispose();
416         else if (jradio[0].isSelected()) {
417             // 将名字改为男
418             this.setSex("男");
419         } else if (jradio[1].isSelected()) {
420             // 将名字改为女
421             this.setSex("女");
422         }
423     }
424
425     public String getSex() {
426         return this.sex;
427     }
428
429     public void setSex(String sex) {
430         this.sex = sex;
431     }
432
433 }
434
435 // 定义一个修改数据的界面
436 class UpdataJFrame extends JDialog implements ActionListener {
437
438     // 填写信息的空格
439     private String sex = null;
440     JTextField[] jt = new JTextField[5];
441     JButton[] jb = new JButton[2];
442     // 单选按钮
443     JRadioButton[] jradio = new JRadioButton[2];
444     // 组合单选按钮
445     ButtonGroup group;
446     // 用于设置 盒式布局 BoxLayout
447     Box[] mybox = new Box[4];
448     JPanel jp, jp1;
449     // SQL几个常用的变量类型
450     Connection ct = null;
451     PreparedStatement ps = null;
452
453     public UpdataJFrame(Frame Father, boolean Model, String name) {
454         // 采用模式对话框
455         super(Father, Model);
456         for (int i = 0; i < 5; i++)
457             jt[i] = new JTextField(10);
458         // 设置为仅仅读取
459         jt[0].setEditable(false);
460         // 下方的几个按钮
461         jb[0] = new JButton("确认");
462         jb[0].addActionListener(this);
463         jb[1] = new JButton("取消");
464         jb[1].addActionListener(this);
465         jradio[0] = new JRadioButton("男");
466         jradio[0].addActionListener(this);
467         jradio[1] = new JRadioButton("女");
468         jradio[1].addActionListener(this);
469         // 设置水平
470         mybox[0] = Box.createVerticalBox();
471         mybox[0].add(Box.createVerticalStrut(15));
472         mybox[0].add(new JLabel("学号:"));
473         mybox[0].add(Box.createVerticalStrut(10));
474         mybox[0].add(new JLabel("名字:"));
475         mybox[0].add(Box.createVerticalStrut(20));
476         mybox[0].add(new JLabel("性别:"));
477         mybox[0].add(Box.createVerticalStrut(25));
478         mybox[0].add(new JLabel("年龄:"));
479         mybox[0].add(Box.createVerticalStrut(10));
480         mybox[0].add(new JLabel("家庭住址:"));
481         mybox[0].add(Box.createVerticalStrut(10));
482         mybox[0].add(new JLabel("系别:"));
483         mybox[0].add(Box.createVerticalStrut(10));
484         // 设置另一边的水平
485         mybox[1] = Box.createVerticalBox();
486         mybox[1].add(Box.createVerticalStrut(18));
487         mybox[1].add(jt[0]);
488         mybox[1].add(Box.createVerticalStrut(8));
489         mybox[1].add(jt[1]);
490         mybox[1].add(Box.createVerticalStrut(8));
491         jp = new JPanel();
492         // 单选群
493         group = new ButtonGroup();
494         group.add(jradio[0]);
495         group.add(jradio[1]);
496         jp.add(jradio[0]);
497         jp.add(jradio[1]);
498         mybox[1].add(jp);
499
500         /*
501          * group =new ButtonGroup(); group.add(jradio[0]); group.add(jradio[1]);
502          * mybox[1].add(group); 此处需要改变的 东西,改成combox来进行,或者直接改成一样的文本框也许
503          */
504         mybox[1].add(Box.createVerticalStrut(5));
505         mybox[1].add(jt[2]);
506         mybox[1].add(Box.createVerticalStrut(8));
507         mybox[1].add(jt[3]);
508         mybox[1].add(Box.createVerticalStrut(8));
509         mybox[1].add(jt[4]);
510         mybox[1].add(Box.createVerticalStrut(8));
511
512         // 按钮部分
513         jp1 = new JPanel();
514         jp1.add(jb[0], BorderLayout.EAST);
515         jp1.add(jb[1], BorderLayout.WEST);
516         mybox[2] = Box.createHorizontalBox();
517         mybox[2].add(mybox[0]);
518         mybox[2].add(Box.createHorizontalStrut(10));
519         mybox[2].add(mybox[1]);
520         Connect(name);
521         this.add(mybox[2], BorderLayout.NORTH);
522         this.add(jp1, BorderLayout.SOUTH);
523         init();
524     }
525
526     // 显示板块部分
527     public void init() {
528         this.setTitle("个人信息板块");
529         this.setBackground(Color.magenta);
530         this.setBounds(400, 300, 300, 300);
531         this.setVisible(true);
532
533         // this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
534     }
535
536     public void Connect(String name) {
537         ResultSet rs = null;
538         // 驱动加载
539         try {
540             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
541             ct = DriverManager
542                     .getConnection(
543                             "jdbc:microsoft:sqlserver://localhost:1434;databaseName=Demo_1",
544                             "sa", "869261636123");
545             String sql = new String("Select * from Stu where stuId=?");
546             ps = ct.prepareStatement(sql);
547             ps.setString(1, name);
548             rs = ps.executeQuery();
549             while (rs.next()) {
550                 int cnt = 1;
551                 for (int i = 1; i <= 6; i++) {
552                     if (4 == i) {
553                         // 整数转化为String
554                         jt[i - cnt].setText(String.valueOf(rs.getInt(i)));
555                     } else {
556                         String st = null;
557                         try {
558                             st = new String((rs.getString(i)).getBytes("gbk"),
559                                     "gb2312");
560                         } catch (UnsupportedEncodingException e) {
561                             // TODO Auto-generated catch block
562                             e.printStackTrace();
563                         }
564                         if (i == 3) {
565                             if (st.equals("男")) {
566                                 jradio[0].setSelected(true);
567                                 this.setSex("男");
568                             } else if (st.equals("女")) {
569                                 jradio[1].setSelected(true);
570                                 this.setSex("女");
571                             } else
572                                 JOptionPane.showMessageDialog(this, "性别处出现乱码");
573                             cnt++;
574                         } else
575                             jt[i - cnt].setText(st);
576                     }
577                 }
578
579             }
580
581         } catch (ClassNotFoundException | SQLException e) {
582             // TODO Auto-generated catch block
583             e.printStackTrace();
584         } finally {
585             try {
586                 if (rs != null)
587                     rs.close();
588                 if (ps != null)
589                     ps.close();
590                 if (ct != null)
591                     ct.close();
592             } catch (SQLException e) {
593                 // TODO Auto-generated catch block
594                 e.printStackTrace();
595             }
596         }
597     }
598
599     @Override
600     public void actionPerformed(ActionEvent e) {
601         // TODO Auto-generated method stub
602         // 将数据写入数据库
603         if (e.getSource() == jb[0]) {
604             // 对写入的数据进行处理
605             try {
606                 // 驱动加载
607                 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
608                 ct = DriverManager
609                         .getConnection(
610                                 "jdbc:microsoft:sqlserver://localhost:1434;databaseName=Demo_1",
611                                 "sa", "869261636123");
612                 ps = ct.prepareStatement("Update stu Set Stuname=?,StuSex=?,StuAge=?,StuJg=?,StuDept=? where StuId=?");
613                 // 回来修改........
614                 // 名字
615                 ps.setString(1, jt[1].getText().toString().trim());
616                 // 性别
617                 ps.setString(2, this.getSex().trim());
618                 // 年龄
619                 String tem = jt[2].getText().toString().trim();
620                 int value = Integer.valueOf(tem).intValue();
621                 ps.setInt(3, value);
622                 // 籍贯
623                 ps.setString(4, jt[3].getText().toString().trim());
624                 // 系别
625                 ps.setString(5, jt[4].getText().toString().trim());
626                 // 学号
627                 ps.setString(6, jt[0].getText().toString().trim());
628                 // 更新
629                 int i = ps.executeUpdate();
630                 if (1 == i)
631                     JOptionPane.showMessageDialog(this, "添加成功!");
632                 else
633                     JOptionPane.showMessageDialog(this, "添加失败!");
634
635             } catch (Exception e1) {
636                 // TODO Auto-generated catch block
637                 e1.printStackTrace();
638             } finally {
639                 // 关闭数据库的一些调用函数
640                 try {
641                     if (ps != null)
642                         ps.close();
643                     if (ct != null)
644                         ct.close();
645                 } catch (SQLException e1) {
646                     // TODO Auto-generated catch block
647                     e1.printStackTrace();
648                 }
649             }
650             this.dispose();
651         } else if (e.getSource() == jb[0])
652             // 释放点该窗口, 退出该版面
653             this.dispose();
654         else if (jradio[0].isSelected()) {
655             // 将名字改为男
656             this.setSex("男");
657         } else if (jradio[1].isSelected()) {
658             // 将名字改为女
659             this.setSex("女");
660         }
661     }
662
663     public String getSex() {
664         return this.sex;
665     }
666
667     public void setSex(String sex) {
668         this.sex = sex;
669     }
670 }
671
672 // 删除界面类
673 class Delete extends JDialog implements ActionListener {
674
675     // 设置为确认和取消两个按钮
676     JButton[] button = new JButton[2];
677     JPanel jp;
678     JTable jt;
679     JScrollPane jsp = null;
680     // 设置为一个删除的表单
681     MyJTable mytable;
682     // SQL几个常用的变量类型
683
684     Connection ct = null;
685     PreparedStatement ps = null;
686     ResultSet rs = null;
687     private String name;
688
689     public Delete(Frame ower, String name, boolean Model) {
690
691         super(ower, Model);
692         this.setName(name);
693         jp = new JPanel();
694         button[0] = new JButton("确定");
695         button[0].addActionListener(this);
696         button[1] = new JButton("取消");
697         button[1].addActionListener(this);
698         jp.add(button[0]);
699         jp.add(button[1]);
700
701         // 设置一个我的列表的界面
702         mytable = new MyJTable(name);
703         jt = new JTable(mytable);
704         JScrollPane jsp = new JScrollPane(jt);
705         this.add(jp, BorderLayout.SOUTH);
706         this.add(jsp, BorderLayout.NORTH);
707         this.setTitle("删除界面");
708         this.setSize(400, 250);
709         this.setResizable(false);
710         this.setVisible(true);
711
712     }
713
714     public String getName() {
715         return name;
716     }
717
718     public void setName(String name) {
719         this.name = name;
720     }
721
722     @Override
723     public void actionPerformed(ActionEvent e) {
724         // TODO Auto-generated method stub
725         if (e.getSource() == button[0]) {
726
727             try {
728                 // 加载上jdbc_odbc驱动
729                 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
730                 // 连接sql
731                 ct = DriverManager
732                         .getConnection(
733                                 "jdbc:microsoft:sqlserver://localhost:1434;databaseName=Demo_1",
734                                 "sa", "869261636123");
735                 String sql = new String("delete  from Stu where Stuname=?");
736                 ps = ct.prepareStatement(sql);
737                 ps.setString(1, this.getName().trim());
738
739                 int i = ps.executeUpdate();
740                 if (1 == i)
741                     JOptionPane.showMessageDialog(this, "删除成功");
742                 else
743                     JOptionPane.showMessageDialog(this, "删除失败了啦!");
744
745             } catch (ClassNotFoundException | SQLException e1) {
746                 // TODO Auto-generated catch block
747                 e1.printStackTrace();
748             } finally {
749                 try {
750                     if (ps != null)
751                         ps.close();
752                     if (ct != null)
753                         ct.close();
754                 } catch (SQLException e1) {
755                     // TODO Auto-generated catch block
756                     e1.printStackTrace();
757                 }
758             }
759         }
760
761         this.dispose();
762     }
763 }

时间: 2024-10-18 01:25:43

java版本的学生管理系统的相关文章

第82节:Java中的学生管理系统

学生管理系统的删除功能 删除,点击超链接,点击弹出对话框式是否进行删除,如果确定,就删除,超链接执行的是js方法,在js里访问,跳转servlet,,servlet中调用dao方法. <a href="#" onclick="doDelete(${stu.sid})">删除</a> <script type="text/javascript"> function doDelete(sid) { // 弹出对话框

java基础:学生管理系统

package com.lovo.manager; import java.util.Scanner; /** * 学生管理 * * @author 向往的生活 * */public class StudentManager { public static void main(String[] args) {        String[] user = new String[10];        int[] password = new int[10];        while (true

Java——简单实现学生管理系统

import java.io.*;import java.util.ArrayList;import java.util.Scanner;class MyObjectOutputStream extends ObjectOutputStream{ public MyObjectOutputStream() throws IOException{  super(); } public MyObjectOutputStream(OutputStream out) throws IOException

第83节:Java中的学生管理系统分页功能

分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其特点是对内存中数据量存储不大,只是缺点就是要对数据库不断的进行访问:而对逻辑分页来说,就有所不同,它是一下子就把所有的数据全部查询出来,然后放入到内存中,访问速度快,缺点就是对内存空间不足,数据量过大. select * from stu limit 5; // offset 偏移前面的多少条,offset 1 跳过前面的一条 select

JAVA入门到精通-第72讲-学生管理系统4-model 2模式(1)

删除.查询.添加.修改: -修改: 每个字段都可能修改: //给?赋值 //在prepareStatement语句后面赋值才好用 //修改完了,更新数据 目前为止,已经完成了增删改查-Model1模式 最大特点: 界面和业务逻辑操作是放在一起的: 优点:简单,开发方便: 缺点:代码复用性不高: 中大型项目可读性差,可维护性不高: 前台后端混杂在一起的: 比如:"数据库密码换了, 所有涉及到数据库的地方都需要发生变化" =================================

JAVA入门到精通-第70讲-学生管理系统2-增删改

-完成一个mini版本学生管理系统 jude软件:很好使的,安装一下就可以用了: -学生管理系统的添加 .修改.删除.上下页分页 ---------------------------------------------- 上面是一个流布局,JPanel 下面是一个流布局,JPanel 中间是Border布局,边界布局,CENTER JTextField jtf; 先加JLable--->Jtf文本域->JButton按钮 ------------------------- mis 系统:信息

用python实现简易学生管理系统

以前用C++和Java写过学生管理系统,也想用Python试试,果然"人生苦短,我用Python".用Python写的更加简洁,实现雏形也就不到100行代码. 下面上代码 1 #!/usr/bin/python3 2 #coding=utf-8 3 #__author__='jeavenwong' 4 5 6 7 8 #实现switch-case语句用 9 class switch(object): 10 def __init__(self, value): 11 self.value

Java版本 学生管理系统

package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWin(); } } class StudentSys extends JFrame{

Java 图形界面开发--图文并茂建立学生管理系统

图形用户界面(Graphics User Interface,GUI)是用户与程序交互的窗口,比命令行的界面更加直观并且更好操作. 这是本人在学习java图形界面开发阶段一步一步实现的超级简易的学生管理系统.虽然说不入大神法眼,但这确实是费了自己不少心血.对于我这样的菜鸟来说,考虑不周到,一不小心就Exception,然后就是自己调呀调.在此分享出来希望对和我一样的菜鸟有帮助. 程序完整代码下载地址见: https://github.com/chaohuangtianjie994/The-Sys