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 }