学生管理系统

目录

视频1
1.先建立GUI界面

视频二
1.executeQuery();
2.java将文本写入文件
3.java从文本读取数据
4.java获取键盘值的方法
5.java如何将String转为int
6.java中获取gui界面文本框内容
7.append();
8.java在主函数中调用函数的方法
9.getText().trim()的作用
10.setModel();立即显示效果的时候
11.主函数代码
12.newxsxx.java学生信息类代码——查询功能

视频三.实现添加功能
1.JDialog对话框
2.this.dispose();/关闭当前窗口
3.主函数tianjia按钮的监听器新增内容
4.newtianjia.java 添加类代码

视频四.实现删除功能(直接在主函数中增添代码)
1.获取页面中选的行和和的内容
2.gui弹出对话框
3.调用数据库时命令的设置
4.主函数——删除功能代码

视频五.修改功能

1.getValueAt(hang,lie);//获取数值
2.tf1.setEditable(false);//不可更改
3.数据库语句
4.主函数修改的监听器代码
5.修改功能的类的代码

 六.总代码

1.学生信息.java=newxsxx.java

2.添加.java=newtianjia.java

3.修改.java=newxiugai.java

4.主函数.java=newa.java

视频一.先建立GUI界面,将数据库中的信息获取在GUI页面中,并以表格方式呈现。(调用数据库需要添加mysql的jar包)

  1 package stumana;
  2 
  3 import java.awt.*;
  4 import java.sql.*;
  5 import java.util.*;
  6 
  7 import javax.swing.*;
  8 
  9 public class newa extends JFrame{
 10     
 11     JPanel jp1,jp2;
 12     JLabel jlb1;
 13     JTextField jtf1;
 14     JButton jb1,jb2,jb3,jb4;
 15     JTable jt1;
 16     JScrollPane jsp1;
 17     
 18     //Vector集合类 字段(横着) 记录(竖着)
 19     Vector ziduan,jilu;
 20     
 21     //数据库所用到的连接
 22     PreparedStatement ps=null;
 23     Connection ct=null;
 24     ResultSet rs=null;
 25     
 26     public static void main(String[] args){
 27         xsglxt xs=new xsglxt();
 28     }
 29     
 30     public newa(){
 31         this.setSize(500,500);
 32         this.setLocation(100,100);
 33         this.setLayout(new BorderLayout());
 34         //面板
 35         jp1=new JPanel();
 36         jlb1=new JLabel("请输入姓名");
 37         jtf1=new JTextField(10);
 38         jb1=new JButton("查询");
 39         jp1.add(jlb1);jp1.add(jtf1);jp1.add(jb1);
 40         
 41         jp2=new JPanel();
 42         jb2=new JButton("添加");
 43         jb3=new JButton("修改");
 44         jb4=new JButton("删除");
 45         jp2.add(jb2);jp2.add(jb3);jp2.add(jb4);
 46         
 47         ziduan=new Vector();
 48         ziduan.add("学号");
 49         ziduan.add("姓名");
 50         ziduan.add("性别");
 51         ziduan.add("年龄");
 52         ziduan.add("籍贯");
 53         ziduan.add("所在院系");
 54         
 55         jilu=new Vector();//记录必须从数据库里读
 56         
 57         try{
 58             Class.forName("com.mysql.jdbc.Driver");
 59             ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
 60             ps=ct.prepareStatement("select * from xuesheng");
 61             rs=ps.executeQuery();
 62 /*
 63 使用JDBC连接数据库需要四步,第一步加载驱动程序;第二步,连接数据库;第三步,访问数据库;第四步,执行查询;其中在第四步执行查询时,要用statement类的executeQuery()方法来下达select指令以查询数据库,executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们使用。即语句:String sql="select * from"+tableName; ResultSet rs=s.executeQuery(sql);
 64 */  
 65             while(rs.next()){  //把每个数据添加到行里 六个字段  
 66                 Vector hang=new Vector();  
 67                 hang.add(rs.getString(1));  
 68                 hang.add(rs.getString(2));  
 69                 hang.add(rs.getString(3)); 
 70                 hang.add(rs.getInt(4));  
 71                 hang.add(rs.getString(5));  
 72                 hang.add(rs.getString(6));  
 73                 jilu.add(hang);    }  
 74             }catch(SQLException e){  
 75                 System.out.println("SQL is not exist!");  
 76                 e.printStackTrace();  
 77             }catch(Exception e1){  
 78                 e1.printStackTrace();  
 79                 }finally{  
 80                     try{  
 81                         if(rs!=null){  
 82                             rs.close();  
 83                             }  
 84                         if(ps!=null){  
 85                             ps.close();  
 86                             }  
 87                         if(ct!=null){  
 88                             ct.close();  
 89                             }  
 90                         }catch(Exception e){}  
 91                     }  
 92         //JTable后面的括号里先是记录,后字段  
 93         jt1=new JTable(jilu,ziduan);  
 94         jsp1=new JScrollPane(jt1);  
 95         this.add(jsp1);  
 96         this.add(jp1,BorderLayout.NORTH);  
 97         this.add(jp2,BorderLayout.SOUTH); 
 98         this.setTitle("学生管理系统"); 
 99         //让它大小不能改变
100         this.setResizable(false);  
101         this.setDefaultCloseOperation(xsglxt.EXIT_ON_CLOSE);  
102         this.setVisible(true);   
103         }  
104 }

视频二.给按钮添加侦听器

1.executeQuery();

使用JDBC连接数据库需要四步,第一步加载驱动程序;第二步,连接数据库;第三步,访问数据库;第四步,执行查询;其中在第四步执行查询时,要用statement类的executeQuery()方法来下达select指令以查询数据库,executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们使用。
Class.forName("com.mysql.jdbc.Driver");
            ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
            ps=ct.prepareStatement("select * from xuesheng");
            rs=ps.executeQuery();

2.java将文本写入文件

void getJtf() throws IOException{
        String t;
        t=jtf1.getText();
        //System.out.println(t);
        write(t,0,t.length());
    }
    
    public void write(String str,int off,int len) throws IOException{
        String path="F://mytext.txt";
        FileOutputStream fs=new FileOutputStream(path);
        OutputStreamWriter opsw=new OutputStreamWriter(fs);    
        opsw.write(str);    
        opsw.close();
        fs.close();
    }

3.java从文本读取数据

public void readaa(String filepath) throws IOException{
        
        InputStreamReader ir=new InputStreamReader(new FileInputStream(filepath));
        BufferedReader ipsw=new BufferedReader(ir);    
        String lineTxt = null;
        StringBuffer sb=new StringBuffer();
         while((lineTxt = ipsw.readLine()) != null){
             System.out.println(lineTxt);
            //lineTxt.append(lineTxt);
             
             sb.append(lineTxt);
         }
         System.out.println(sb+"readaa");
         
        ir.close();
    }

4.java获取键盘值的方法

程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!

Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:

1)方法一:从控制台接收一个字符,然后将其打印出来

public static void main(String [] args) throws IOException{

  System.out.print(“Enter a Char:”);

  char i = (char) System.in.read();

  System.out.println(“your char is :”+i);

  }

  }

  虽然此方式实现了从键盘获取输入的字符,但是System.out.read()只能针对一个字符的获取,同时,获取进来的变量的类型只能是char,当我们输入一个数字,希望得到的也是一个整型变量的时候,我们还得修改其中的变量类型,这样就显得比较麻烦。

2)方法二:从控制台接收一个字符串,然后将其打印出来。在这个题目中,我们需要用到BufferedReader类和InputStreamReader类

public static void main(String [] args) throws IOException{

  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

  String str = null;

  System.out.println(“Enter your value:”);

  str = br.readLine();

  System.out.println(“your value is :”+str);

  }

  这样我们就能获取我们输入的字符串。

3)方法三:这种方法我认为是最简单,最强大的,就是用Scanner类

public static void main(String [] args) {

  Scanner sc = new Scanner(System.in);

  System.out.println(“请输入你的姓名:”);

  String name = sc.nextLine();

  System.out.println(“请输入你的年龄:”);

  int age = sc.nextInt();

  System.out.println(“请输入你的工资:”);

  float salary = sc.nextFloat();

  System.out.println(“你的信息如下:”);

  System.out.println(“姓名:”+name+“
”+“年龄:”+age+“
”+“工资:”+salary);

  }

  这段代码已经表明,Scanner类不管是对于字符串还是整型数据或者float类型的变量,只需做一点小小的改变,就能够实现功能!无疑他是最强大的。

5.java如何将String转为int

  在java中要将String类型转化为int类型时,需要使用Integer类中的parseInt()方法或者valueOf()方法进行转换。

例1:

String str = "123";
try {
    int a = Integer.parseInt(str);
} catch (NumberFormatException e) {
    e.printStackTrace();
}

例2:

String str = "123";
try {
    int b = Integer.valueOf(str).intValue()
} catch (NumberFormatException e) {
    e.printStackTrace();
}

  在转换过程中需要注意,因为字符串中可能会出现非数字的情况,所以在转换的时候需要捕捉处理异常。

6.java中获取gui界面文本框内容

JTextField textField = new JTextField();//文本框
String s=textField.getText().toString();//获得文本框的内容

7.append()

//创建追加可变字符串
StringBuffer appendSB = new StringBuffer("abc");
appendSB.append("123");
appendSB.append('2');
appendSB.append(true);
appendSB.append(" abc")
.append("def")
.append("****")
.append(1221);
System.out.println("appendSB:" + appendSB);
//使用StringBuffer创建完全可视化的SQL语句
StringBuffer querySB = new StringBuffer();
querySB.append("SELECT studentid, NAME, gender, age, telephone, address, addedtime ")
.append(" FROM student_info ")
.append(" WHERE studentid=1 AND gender=1 ")

8.java在主函数中调用函数的方法

  调用方法:先生成一个对象,用“对象.方法()”的方式调用。
  调用说明:java中的main方法是静态的,用于程序的入口,在静态方法中无法调用非静态方法,只能调用静态方法。想调用静态方法的话就要先生成该类的一个对象,通过对象调用非静态方法。

调用举例:

 public class A{
  public static void main(String[] args){
  A a = new A();
  a.aaa();
  }
  public void aaa(){}
 }

9.getText().trim()的作用

trim()的作用是:去掉字符串左右的空格

10.setModel();立即显示效果的时候

11.主函数代码

  1 package stumana;
  2 import java.awt.*;
  3 import java.awt.event.ActionEvent;
  4 import java.awt.event.ActionListener;
  5 import java.io.IOException;
  6 import java.sql.*;
  7 import java.util.*;
  8 import javax.swing.*;
  9 public class newa extends JFrame implements ActionListener{
 10     
 11     JPanel jp1,jp2;
 12     JLabel jlb1;
 13     JTextField jtf1;
 14     JButton jb1,jb2,jb3,jb4;
 15     JTable jt1;
 16     JScrollPane jsp1;
 17     
 18     //Vector集合类 字段(横着) 记录(竖着)
 19     Vector ziduan,jilu;
 20     
 21     //数据库所用到的连接
 22     PreparedStatement ps=null;
 23     Connection ct=null;
 24     ResultSet rs=null;
 25     
 26     public static void main(String[] args){
 27         newa xs=new newa();
 28     }
 29     
 30     public newa() {
 31         this.setSize(500,500);
 32         this.setLocation(100,100);
 33         this.setLayout(new BorderLayout());
 34         //面板
 35         jp1=new JPanel();
 36         jlb1=new JLabel("请输入姓名");
 37         jtf1=new JTextField(10);
 38         jb1=new JButton("查询");
 39         jb1.addActionListener(this);
 40         jb1.setActionCommand("chaxun");
 41         jp1.add(jlb1);jp1.add(jtf1);jp1.add(jb1);
 42         
 43         jp2=new JPanel();
 44         jb2=new JButton("添加");
 45         jb2.addActionListener(this);
 46         jb2.setActionCommand("tianjia");//Command的设置
 47         jb3=new JButton("修改");
 48         jb3.addActionListener(this);
 49         jb3.setActionCommand("xiugai");
 50         jb4=new JButton("删除");
 51         jb4.addActionListener(this);
 52         jb4.setActionCommand("shanchu");
 53         jp2.add(jb2);jp2.add(jb3);jp2.add(jb4);
 54         
 55         ziduan=new Vector();
 56         ziduan.add("学号");
 57         ziduan.add("姓名");
 58         ziduan.add("性别");
 59         ziduan.add("年龄");
 60         ziduan.add("籍贯");
 61         ziduan.add("所在院系");
 62         
 63         jilu=new Vector();//记录必须从数据库里读
 64         
 65         try{
 66             Class.forName("com.mysql.jdbc.Driver");
 67             ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
 68             ps=ct.prepareStatement("select * from xuesheng");
 69             rs=ps.executeQuery();
 70 /*
 71 使用JDBC连接数据库需要四步,第一步加载驱动程序;第二步,连接数据库;第三步,访问数据库;第四步,执行查询;其中在第四步执行查询时,要用statement类的executeQuery()方法来下达select指令以查询数据库,executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们使用。即语句:String sql="select * from"+tableName; ResultSet rs=s.executeQuery(sql);
 72 */  
 73             while(rs.next()){  //把每个数据添加到行里 六个字段  
 74                 Vector hang=new Vector();  
 75                 hang.add(rs.getString(1));  
 76                 hang.add(rs.getString(2));  
 77                 hang.add(rs.getString(3)); 
 78                 hang.add(rs.getInt(4));  
 79                 hang.add(rs.getString(5));  
 80                 hang.add(rs.getString(6));  
 81                 jilu.add(hang);    }  
 82             }catch(SQLException e){  
 83                 System.out.println("SQL is not exist!");  
 84                 e.printStackTrace();  
 85             }catch(Exception e1){  
 86                 e1.printStackTrace();  
 87                 }finally{  
 88                     try{  
 89                         if(rs!=null){  
 90                             rs.close();  
 91                             }  
 92                         if(ps!=null){  
 93                             ps.close();  
 94                             }  
 95                         if(ct!=null){  
 96                             ct.close();  
 97                             }  
 98                         }catch(Exception e){}  
 99                     }  
100         //JTable后面的括号里先是记录,后字段  
101         jt1=new JTable(jilu,ziduan);  
102         jsp1=new JScrollPane(jt1);  
103         this.add(jsp1);  
104         this.add(jp1,BorderLayout.NORTH);  
105         this.add(jp2,BorderLayout.SOUTH); 
106         this.setTitle("学生管理系统"); 
107         //让它大小不能改变
108         this.setResizable(false);  
109         this.setDefaultCloseOperation(newa.EXIT_ON_CLOSE);  
110         this.setVisible(true);   
111         }
112     @Override
113     public void actionPerformed(ActionEvent e) {
114         // TODO Auto-generated method stub
115         if(e.getActionCommand().equals("chaxun")){
116             String xingming=this.jtf1.getText().trim();
117             String sql="select * from xuesheng where name='"+xingming+"'";
118             newxsxx xsxx2=new newxsxx(sql);
119             jt1.setModel(xsxx2);//在表格中显示
120             System.out.println("aaa");
121         }else if(e.getActionCommand().equals("tianjia")){
122             System.out.println("bbb");
123         }else if(e.getActionCommand().equals("xiugai")){
124             System.out.println("ccc");
125         }else if(e.getActionCommand().equals("shanchu")){
126             System.out.println("ddd");
127         }
128     }  
129 }

12.newxsxx.java学生信息类代码——查询功能

 1 package stumana;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.util.Vector;
 9 
10 import javax.swing.table.AbstractTableModel;
11 
12 public class newxsxx extends AbstractTableModel{
13     Vector ziduan,jilu;
14     PreparedStatement ps=null;
15     Connection ct=null;
16     ResultSet rs=null;
17     @Override
18     public int getRowCount() {
19         // TODO Auto-generated method stub
20         return this.jilu.size();
21     }
22 
23     @Override
24     public int getColumnCount() {
25         // TODO Auto-generated method stub
26         return this.ziduan.size();
27     }
28 
29     @Override
30     public Object getValueAt(int rowIndex, int columnIndex) {
31         // TODO Auto-generated method stub
32         return ((Vector)this.jilu.get(rowIndex)).get(columnIndex);
33     }
34     
35     public newxsxx(){//构造函数
36         this.sqlyj("select * from xuesheng");
37     }
38     public newxsxx(String ss){
39         this.sqlyj(ss);
40     }
41     public String getColumnName(int e){
42         return (String)this.ziduan.get(e);
43     }
44     public void sqlyj(String sql){
45         ziduan=new Vector();
46         ziduan.add("学号");
47         ziduan.add("姓名");
48         ziduan.add("性别");
49         ziduan.add("年龄");
50         ziduan.add("籍贯");
51         ziduan.add("所在院系");
52         jilu=new Vector();
53         //读取和查询都需要
54         try{
55             Class.forName("com.mysql.jdbc.Driver");
56             ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
57             ps=ct.prepareStatement(sql);
58             rs=ps.executeQuery();
59             while(rs.next()){  //把每个数据添加到行里 六个字段  
60                 Vector hang=new Vector();  
61                 hang.add(rs.getString(1));  
62                 hang.add(rs.getString(2));  
63                 hang.add(rs.getString(3)); 
64                 hang.add(rs.getInt(4));  
65                 hang.add(rs.getString(5));  
66                 hang.add(rs.getString(6));  
67                 jilu.add(hang);    
68                 }  
69             }catch(SQLException e){  
70                 System.out.println("SQL is not exist a!");  
71                 e.printStackTrace();  
72             }catch(Exception e1){  
73                 e1.printStackTrace();  
74                 }finally{  
75                     try{  
76                         if(rs!=null){  
77                             rs.close();  
78                             }  
79                         if(ps!=null){  
80                             ps.close();  
81                             }  
82                         if(ct!=null){  
83                             ct.close();  
84                             }  
85                         }catch(Exception e){}  
86                     }  
87     }
88     
89 }

视频三.实现添加功能

1.JDialog对话框与JFrame框架有一些类似,但它一般是一个临时的窗口,主要用于显示提示信息或接受用户输入。所以,在对话框中一般不需要菜单条,也不需要改变窗口大小。此外,在对话框出现时,可以设定禁止其他窗口的输入,直到这个对话框被关闭。对话框是由 JDialog 类实现的,JDialog 类的构造方法有多种:

JDialog();
JDialog(Dialog owner);
JDialog(Dialog owner,boolean modal);
JDialog(Dialog owner,String title);
JDialog(Dialog owner,String title,boolean modal);
JDialog(Dialog owner,String title,boolean modal,GraphicsConfiguration gc);
JDialog(Frame owner);
JDialog(Frame owner,boolean modal);
JDialog(Frame owner,String title);
JDialog(Frame owner,String title,boolean modal);
JDialog(Frame owner,String title,boolean modal,GraphicsConfiguration gc);
 
其中 Frame 类型的参数表示对话框的拥有者,boolean 类型参数用于控制对话框的工作方式。如果为true,则对话框为可视时,其他构件不能接受用户的输入,此时的对话框称为静态的;如果为false,则对话框和所属窗口可以互相切换,彼此之间没有顺序上的联系。String类型参数作为对话框的标题,在构造对话框之后,就可以添加其他的构件。
 

2.this.dispose();/关闭当前窗口

3.主函数tianjia按钮的监听器新增内容

1 newtianjia tj=new newtianjia(this,"添加学生信息",true);
2             
3             //让它添加显示在页面
4             newxsxx xsxx2=new newxsxx();
5             jt1.setModel(xsxx2);

4.newtianjia.java   添加类代码

  1 package stumana;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.Frame;
  5 import java.awt.GridLayout;
  6 import java.awt.event.ActionEvent;
  7 import java.awt.event.ActionListener;
  8 import java.sql.Connection;
  9 import java.sql.DriverManager;
 10 import java.sql.PreparedStatement;
 11 import java.sql.ResultSet;
 12 import java.sql.SQLException;
 13 
 14 import javax.swing.JButton;
 15 import javax.swing.JDialog;
 16 import javax.swing.JLabel;
 17 import javax.swing.JPanel;
 18 import javax.swing.JTextField;
 19 
 20 import com.mysql.jdbc.Statement;
 21 
 22 //JDialog派生出窗口
 23 public class newtianjia extends JDialog implements ActionListener{
 24 
 25     JLabel lb1,lb2,lb3,lb4,lb5,lb6;
 26     JTextField tf1,tf2,tf3,tf4,tf5,tf6;
 27     JButton b1,b2;
 28     JPanel p1,p2,p3,p4;
 29     
 30     public newtianjia(Frame fck,String ckm,Boolean msck){
 31         super(fck,ckm,msck);
 32         lb1=new JLabel("   学号  ");
 33         lb2=new JLabel("   姓名  ");
 34         lb3=new JLabel("   性别  ");
 35         lb4=new JLabel("   年龄  ");
 36         lb5=new JLabel("   籍贯  ");
 37         lb6=new JLabel("   院系  ");
 38         
 39         tf1=new JTextField(5);
 40         tf2=new JTextField(5);
 41         tf3=new JTextField(5);
 42         tf4=new JTextField(5);
 43         tf5=new JTextField(5);
 44         tf6=new JTextField(5);
 45         
 46         b1=new JButton("添加");
 47         b1.addActionListener(this);
 48         b1.setActionCommand("tianjia2");
 49         b2=new JButton("取消");
 50         b2.addActionListener(this);
 51         b2.setActionCommand("quxiao");
 52         
 53         p1=new JPanel();
 54         p2=new JPanel();
 55         p3=new JPanel();
 56         p4=new JPanel();
 57         
 58         p1.setLayout(new GridLayout(6,1));
 59         p2.setLayout(new GridLayout(6,1));
 60         
 61         p1.add(lb1);p1.add(lb2);p1.add(lb3);
 62         p1.add(lb4);p1.add(lb5);p1.add(lb6);
 63         
 64         p2.add(tf1);p2.add(tf2);p2.add(tf3);
 65         p2.add(tf4);p2.add(tf5);p2.add(tf6);
 66         
 67         p3.add(b1);p3.add(b2);
 68         
 69         this.add(p1,BorderLayout.WEST);
 70         this.add(p2);
 71         this.add(p3,BorderLayout.SOUTH);
 72         this.add(p4,BorderLayout.EAST);
 73         
 74         this.setSize(370,270);
 75         this.setLocation(250,250);
 76         this.setResizable(false);
 77         this.setVisible(true);
 78         
 79     }
 80     
 81     @Override
 82     public void actionPerformed(ActionEvent e) {
 83         // TODO Auto-generated method stub
 84         if(e.getActionCommand().equals("tianjia2")){
 85             PreparedStatement ps=null;
 86             Connection ct=null;
 87             ResultSet rs=null;
 88             Statement sm=null;
 89             try{
 90                 Class.forName("com.mysql.jdbc.Driver");
 91                 ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
 92                 String ss=("insert into xuesheng values(?,?,?,?,?,?)");
 93                 ps=ct.prepareStatement(ss);
 94                 ps.setString(1, tf1.getText());
 95                 ps.setString(2, tf2.getText());
 96                 ps.setString(3, tf3.getText());
 97                 ps.setString(4, tf4.getText());
 98                 ps.setString(5, tf5.getText());
 99                 ps.setString(6, tf6.getText());
100                 ps.executeUpdate();
101                 this.dispose();
102                 
103             }catch(SQLException e5){  
104                 System.out.println("SQL is not exist!");  
105                 e5.printStackTrace();  
106             }catch(Exception e1){  
107                 e1.printStackTrace();  
108                 }finally{  
109                     try{  
110                         if(rs!=null){  
111                             rs.close();  
112                             }  
113                         if(ps!=null){  
114                             ps.close();  
115                             }  
116                         if(ct!=null){  
117                             ct.close();  
118                             }  
119                         }catch(Exception e4){}  
120                     }  
121             
122         }else if(e.getActionCommand().equals("quxiao")){
123             this.dispose();//关闭当前窗口
124         }
125     }
126     
127 }

 视频四.实现删除功能(直接在主函数中增添代码)

 1.获取页面中选的行和和的内容

int li=this.jt1.getSelectedRow();//获取界面选中的行
String st=(String)xsxx2.getValueAt(li,0);//获取li行0列内容

  

 2.gui弹出对话框

  if(li==-1){
                 JOptionPane.showMessageDialog(this,"请选中要删除的行");
                return;}

3.调用数据库时命令的设置

ps=ct.prepareStatement("delete from xuesheng where xuehao=?");
ps.setString(1,st);

  

4.主函数——删除功能代码

if(e.getActionCommand().equals("shanchu")){
			
			int li=this.jt1.getSelectedRow();//获取界面选中的行
			if(li==-1){
				JOptionPane.showMessageDialog(this,"请选中要删除的行");
				return;
			}
			xsxx2=new newxsxx();
			String st=(String)xsxx2.getValueAt(li,0);
			 try{
		            Class.forName("com.mysql.jdbc.Driver");
		            ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
		            ps=ct.prepareStatement("delete from xuesheng where xuehao=?");
		            ps.setString(1,st);
		            ps.executeUpdate();
		          
		            }catch(SQLException ee){  
		            	System.out.println("SQL is not exist!");  
		            	ee.printStackTrace();  
		            }catch(Exception e1){  
		            	e1.printStackTrace();  
		            	}finally{  
		            		try{  
		            			if(rs!=null){  
		            				rs.close();  
		            				}  
		            			if(ps!=null){  
		            				ps.close();  
		            				}  
		            			if(ct!=null){  
		            				ct.close();  
		            				}  
		            			}catch(Exception er){}  
		            		}  
			 			xsxx2=new newxsxx();
			 			jt1.setModel(xsxx2);
			
			//System.out.println("ddd");
		}

  

 视频五.修改功能

1.getValueAt(hang,lie);//获取数值

2.tf1.setEditable(false);//不可更改

3.数据库语句

(update xuesheng set name=?,sex=?,age=?,jiguan=?,suozaiyuanxi=? where xuehao=?)

(insert into xuesheng values(?,?,?,?,?,?))

(delete from xuesheng where xuehao=?)

4.主函数修改的监听器代码

if(e.getActionCommand().equals("xiugai")){
            int li=this.jt1.getSelectedRow();//获取界面选中的行
            if(li==-1){
                JOptionPane.showMessageDialog(this,"请选中要修改的行");
                return;
            }
            new newxiugai(this,"修改学生信息",true,xsxx2,li);
             xsxx2=new newxsxx();
             jt1.setModel(xsxx2);
        }

5.修改功能的类的代码

  1 package stumana;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.Frame;
  5 import java.awt.GridLayout;
  6 import java.awt.event.ActionEvent;
  7 import java.awt.event.ActionListener;
  8 import java.sql.Connection;
  9 import java.sql.DriverManager;
 10 import java.sql.PreparedStatement;
 11 import java.sql.ResultSet;
 12 import java.sql.SQLException;
 13 
 14 import javax.swing.JButton;
 15 import javax.swing.JDialog;
 16 import javax.swing.JLabel;
 17 import javax.swing.JOptionPane;
 18 import javax.swing.JPanel;
 19 import javax.swing.JTextField;
 20 
 21 import com.mysql.jdbc.Statement;
 22 
 23 public class newxiugai extends JDialog implements ActionListener{
 24 
 25     
 26     JLabel lb1,lb2,lb3,lb4,lb5,lb6;
 27     JTextField tf1,tf2,tf3,tf4,tf5,tf6;
 28     JButton b1,b2;
 29     JPanel p1,p2,p3,p4;
 30     
 31     public newxiugai(Frame fck,String ckm,Boolean msck,newxsxx xsxx2,int hang){
 32         super(fck,ckm,msck);
 33         lb1=new JLabel("   学号  ");
 34         lb2=new JLabel("   姓名  ");
 35         lb3=new JLabel("   性别  ");
 36         lb4=new JLabel("   年龄  ");
 37         lb5=new JLabel("   籍贯  ");
 38         lb6=new JLabel("   院系  ");
 39         
 40         
 41         tf1=new JTextField(5);
 42         tf1.setText((String)xsxx2.getValueAt(hang,0));
 43         tf1.setEditable(false);
 44         tf2=new JTextField(5);
 45         tf2.setText((String)xsxx2.getValueAt(hang,1));
 46         tf3=new JTextField(5);
 47         tf3.setText((String)xsxx2.getValueAt(hang,2));
 48         tf4=new JTextField(5);
 49         tf4.setText((String)xsxx2.getValueAt(hang,3).toString());
 50         tf5=new JTextField(5);
 51         tf5.setText((String)xsxx2.getValueAt(hang,4));
 52         tf6=new JTextField(5);
 53         tf6.setText((String)xsxx2.getValueAt(hang,5));
 54         
 55         b1=new JButton("修改");
 56         b1.addActionListener(this);
 57         b1.setActionCommand("xiugai");
 58         b2=new JButton("取消");
 59         b2.addActionListener(this);
 60         b2.setActionCommand("quxiao");
 61         
 62         p1=new JPanel();
 63         p2=new JPanel();
 64         p3=new JPanel();
 65         p4=new JPanel();
 66         
 67         p1.setLayout(new GridLayout(6,1));
 68         p2.setLayout(new GridLayout(6,1));
 69         
 70         p1.add(lb1);p1.add(lb2);p1.add(lb3);
 71         p1.add(lb4);p1.add(lb5);p1.add(lb6);
 72         
 73         p2.add(tf1);p2.add(tf2);p2.add(tf3);
 74         p2.add(tf4);p2.add(tf5);p2.add(tf6);
 75         
 76         p3.add(b1);p3.add(b2);
 77         
 78         this.add(p1,BorderLayout.WEST);
 79         this.add(p2);
 80         this.add(p3,BorderLayout.SOUTH);
 81         this.add(p4,BorderLayout.EAST);
 82         
 83         this.setSize(370,270);
 84         this.setLocation(250,250);
 85         this.setResizable(false);
 86         this.setVisible(true);
 87         
 88     }
 89     @Override
 90     public void actionPerformed(ActionEvent e) {
 91         // TODO Auto-generated method stub
 92         if(e.getActionCommand().equals("xiugai")){
 93             PreparedStatement ps=null;
 94             Connection ct=null;
 95             ResultSet rs=null;
 96             Statement sm=null;
 97             try{
 98                 Class.forName("com.mysql.jdbc.Driver");
 99                 ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
100                 String ss=("update xuesheng set name=?,sex=?,age=?,jiguan=?,suozaiyuanxi=? where xuehao=?");
101                 ps=ct.prepareStatement(ss);
102                 ps.setString(1, tf2.getText());
103                 ps.setString(2, tf3.getText());
104                 ps.setString(3, tf4.getText());
105                 ps.setString(4, tf5.getText());
106                 ps.setString(5, tf6.getText());
107                 ps.setString(6, tf1.getText());
108                 ps.executeUpdate();
109                 this.dispose();
110                 
111             }catch(SQLException e5){  
112                 System.out.println("SQL is not exist!");  
113                 e5.printStackTrace();  
114             }catch(Exception e1){  
115                 e1.printStackTrace();  
116                 }finally{  
117                     try{  
118                         if(rs!=null){  
119                             rs.close();  
120                             }  
121                         if(ps!=null){  
122                             ps.close();  
123                             }  
124                         if(ct!=null){  
125                             ct.close();  
126                             }  
127                         }catch(Exception e4){}  
128                     }  
129             
130         }else if(e.getActionCommand().equals("quxiao")){
131             this.dispose();//关闭当前窗口
132         }
133     }
134 
135 }

 六.总代码

1.学生信息.java=newxsxx.java

 1 package stumana;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.util.Vector;
 9 
10 import javax.swing.table.AbstractTableModel;
11 
12 public class newxsxx extends AbstractTableModel{
13     Vector ziduan,jilu;
14     PreparedStatement ps=null;
15     Connection ct=null;
16     ResultSet rs=null;
17     @Override
18     public int getRowCount() {
19         // TODO Auto-generated method stub
20         return this.jilu.size();
21     }
22 
23     @Override
24     public int getColumnCount() {
25         // TODO Auto-generated method stub
26         return this.ziduan.size();
27     }
28 
29     @Override
30     public Object getValueAt(int rowIndex, int columnIndex) {
31         // TODO Auto-generated method stub
32         return ((Vector)this.jilu.get(rowIndex)).get(columnIndex);
33     }
34     
35     public newxsxx(){//构造函数
36         this.sqlyj("select * from xuesheng");
37     }
38     public newxsxx(String ss){
39         this.sqlyj(ss);
40     }
41     public String getColumnName(int e){
42         return (String)this.ziduan.get(e);
43     }
44     public void sqlyj(String sql){
45         ziduan=new Vector();
46         ziduan.add("学号");
47         ziduan.add("姓名");
48         ziduan.add("性别");
49         ziduan.add("年龄");
50         ziduan.add("籍贯");
51         ziduan.add("所在院系");
52         jilu=new Vector();
53         //读取和查询都需要
54         try{
55             Class.forName("com.mysql.jdbc.Driver");
56             ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
57             ps=ct.prepareStatement(sql);
58             rs=ps.executeQuery();
59             while(rs.next()){  //把每个数据添加到行里 六个字段  
60                 Vector hang=new Vector();  
61                 hang.add(rs.getString(1));  
62                 hang.add(rs.getString(2));  
63                 hang.add(rs.getString(3)); 
64                 hang.add(rs.getInt(4));  
65                 hang.add(rs.getString(5));  
66                 hang.add(rs.getString(6));  
67                 jilu.add(hang);    
68                 }  
69             }catch(SQLException e){  
70                 System.out.println("SQL is not exist a!");  
71                 e.printStackTrace();  
72             }catch(Exception e1){  
73                 e1.printStackTrace();  
74                 }finally{  
75                     try{  
76                         if(rs!=null){  
77                             rs.close();  
78                             }  
79                         if(ps!=null){  
80                             ps.close();  
81                             }  
82                         if(ct!=null){  
83                             ct.close();  
84                             }  
85                         }catch(Exception e){}  
86                     }  
87     }
88     
89 }

2.添加.java=newtianjia.java

  1 package stumana;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.Frame;
  5 import java.awt.GridLayout;
  6 import java.awt.event.ActionEvent;
  7 import java.awt.event.ActionListener;
  8 import java.sql.Connection;
  9 import java.sql.DriverManager;
 10 import java.sql.PreparedStatement;
 11 import java.sql.ResultSet;
 12 import java.sql.SQLException;
 13 
 14 import javax.swing.JButton;
 15 import javax.swing.JDialog;
 16 import javax.swing.JLabel;
 17 import javax.swing.JPanel;
 18 import javax.swing.JTextField;
 19 
 20 import com.mysql.jdbc.Statement;
 21 
 22 //JDialog派生出窗口
 23 public class newtianjia extends JDialog implements ActionListener{
 24 
 25     JLabel lb1,lb2,lb3,lb4,lb5,lb6;
 26     JTextField tf1,tf2,tf3,tf4,tf5,tf6;
 27     JButton b1,b2;
 28     JPanel p1,p2,p3,p4;
 29     
 30     public newtianjia(Frame fck,String ckm,Boolean msck){
 31         super(fck,ckm,msck);
 32         lb1=new JLabel("   学号  ");
 33         lb2=new JLabel("   姓名  ");
 34         lb3=new JLabel("   性别  ");
 35         lb4=new JLabel("   年龄  ");
 36         lb5=new JLabel("   籍贯  ");
 37         lb6=new JLabel("   院系  ");
 38         
 39         tf1=new JTextField(5);
 40         tf2=new JTextField(5);
 41         tf3=new JTextField(5);
 42         tf4=new JTextField(5);
 43         tf5=new JTextField(5);
 44         tf6=new JTextField(5);
 45         
 46         b1=new JButton("添加");
 47         b1.addActionListener(this);
 48         b1.setActionCommand("tianjia2");
 49         b2=new JButton("取消");
 50         b2.addActionListener(this);
 51         b2.setActionCommand("quxiao");
 52         
 53         p1=new JPanel();
 54         p2=new JPanel();
 55         p3=new JPanel();
 56         p4=new JPanel();
 57         
 58         p1.setLayout(new GridLayout(6,1));
 59         p2.setLayout(new GridLayout(6,1));
 60         
 61         p1.add(lb1);p1.add(lb2);p1.add(lb3);
 62         p1.add(lb4);p1.add(lb5);p1.add(lb6);
 63         
 64         p2.add(tf1);p2.add(tf2);p2.add(tf3);
 65         p2.add(tf4);p2.add(tf5);p2.add(tf6);
 66         
 67         p3.add(b1);p3.add(b2);
 68         
 69         this.add(p1,BorderLayout.WEST);
 70         this.add(p2);
 71         this.add(p3,BorderLayout.SOUTH);
 72         this.add(p4,BorderLayout.EAST);
 73         
 74         this.setSize(370,270);
 75         this.setLocation(250,250);
 76         this.setResizable(false);
 77         this.setVisible(true);
 78         
 79     }
 80     
 81     @Override
 82     public void actionPerformed(ActionEvent e) {
 83         // TODO Auto-generated method stub
 84         if(e.getActionCommand().equals("tianjia2")){
 85             PreparedStatement ps=null;
 86             Connection ct=null;
 87             ResultSet rs=null;
 88             Statement sm=null;
 89             try{
 90                 Class.forName("com.mysql.jdbc.Driver");
 91                 ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
 92                 String ss=("insert into xuesheng values(?,?,?,?,?,?)");
 93                 ps=ct.prepareStatement(ss);
 94                 ps.setString(1, tf1.getText());
 95                 ps.setString(2, tf2.getText());
 96                 ps.setString(3, tf3.getText());
 97                 ps.setString(4, tf4.getText());
 98                 ps.setString(5, tf5.getText());
 99                 ps.setString(6, tf6.getText());
100                 ps.executeUpdate();
101                 this.dispose();
102                 
103             }catch(SQLException e5){  
104                 System.out.println("SQL is not exist!");  
105                 e5.printStackTrace();  
106             }catch(Exception e1){  
107                 e1.printStackTrace();  
108                 }finally{  
109                     try{  
110                         if(rs!=null){  
111                             rs.close();  
112                             }  
113                         if(ps!=null){  
114                             ps.close();  
115                             }  
116                         if(ct!=null){  
117                             ct.close();  
118                             }  
119                         }catch(Exception e4){}  
120                     }  
121             
122         }else if(e.getActionCommand().equals("quxiao")){
123             this.dispose();//关闭当前窗口
124         }
125     }
126     
127 }

3.修改.java=newxiugai.java

  1 package stumana;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.Frame;
  5 import java.awt.GridLayout;
  6 import java.awt.event.ActionEvent;
  7 import java.awt.event.ActionListener;
  8 import java.sql.Connection;
  9 import java.sql.DriverManager;
 10 import java.sql.PreparedStatement;
 11 import java.sql.ResultSet;
 12 import java.sql.SQLException;
 13 
 14 import javax.swing.JButton;
 15 import javax.swing.JDialog;
 16 import javax.swing.JLabel;
 17 import javax.swing.JOptionPane;
 18 import javax.swing.JPanel;
 19 import javax.swing.JTextField;
 20 
 21 import com.mysql.jdbc.Statement;
 22 
 23 public class newxiugai extends JDialog implements ActionListener{
 24 
 25     
 26     JLabel lb1,lb2,lb3,lb4,lb5,lb6;
 27     JTextField tf1,tf2,tf3,tf4,tf5,tf6;
 28     JButton b1,b2;
 29     JPanel p1,p2,p3,p4;
 30     
 31     public newxiugai(Frame fck,String ckm,Boolean msck,newxsxx xsxx2,int hang){
 32         super(fck,ckm,msck);
 33         lb1=new JLabel("   学号  ");
 34         lb2=new JLabel("   姓名  ");
 35         lb3=new JLabel("   性别  ");
 36         lb4=new JLabel("   年龄  ");
 37         lb5=new JLabel("   籍贯  ");
 38         lb6=new JLabel("   院系  ");
 39         
 40         
 41         tf1=new JTextField(5);
 42         tf1.setText((String)xsxx2.getValueAt(hang,0));
 43         tf1.setEditable(false);
 44         tf2=new JTextField(5);
 45         tf2.setText((String)xsxx2.getValueAt(hang,1));
 46         tf3=new JTextField(5);
 47         tf3.setText((String)xsxx2.getValueAt(hang,2));
 48         tf4=new JTextField(5);
 49         tf4.setText((String)xsxx2.getValueAt(hang,3).toString());
 50         tf5=new JTextField(5);
 51         tf5.setText((String)xsxx2.getValueAt(hang,4));
 52         tf6=new JTextField(5);
 53         tf6.setText((String)xsxx2.getValueAt(hang,5));
 54         
 55         b1=new JButton("修改");
 56         b1.addActionListener(this);
 57         b1.setActionCommand("xiugai");
 58         b2=new JButton("取消");
 59         b2.addActionListener(this);
 60         b2.setActionCommand("quxiao");
 61         
 62         p1=new JPanel();
 63         p2=new JPanel();
 64         p3=new JPanel();
 65         p4=new JPanel();
 66         
 67         p1.setLayout(new GridLayout(6,1));
 68         p2.setLayout(new GridLayout(6,1));
 69         
 70         p1.add(lb1);p1.add(lb2);p1.add(lb3);
 71         p1.add(lb4);p1.add(lb5);p1.add(lb6);
 72         
 73         p2.add(tf1);p2.add(tf2);p2.add(tf3);
 74         p2.add(tf4);p2.add(tf5);p2.add(tf6);
 75         
 76         p3.add(b1);p3.add(b2);
 77         
 78         this.add(p1,BorderLayout.WEST);
 79         this.add(p2);
 80         this.add(p3,BorderLayout.SOUTH);
 81         this.add(p4,BorderLayout.EAST);
 82         
 83         this.setSize(370,270);
 84         this.setLocation(250,250);
 85         this.setResizable(false);
 86         this.setVisible(true);
 87         
 88     }
 89     @Override
 90     public void actionPerformed(ActionEvent e) {
 91         // TODO Auto-generated method stub
 92         if(e.getActionCommand().equals("xiugai")){
 93             PreparedStatement ps=null;
 94             Connection ct=null;
 95             ResultSet rs=null;
 96             Statement sm=null;
 97             try{
 98                 Class.forName("com.mysql.jdbc.Driver");
 99                 ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
100                 String ss=("update xuesheng set name=?,sex=?,age=?,jiguan=?,suozaiyuanxi=? where xuehao=?");
101                 ps=ct.prepareStatement(ss);
102                 ps.setString(1, tf2.getText());
103                 ps.setString(2, tf3.getText());
104                 ps.setString(3, tf4.getText());
105                 ps.setString(4, tf5.getText());
106                 ps.setString(5, tf6.getText());
107                 ps.setString(6, tf1.getText());
108                 ps.executeUpdate();
109                 this.dispose();
110                 
111             }catch(SQLException e5){  
112                 System.out.println("SQL is not exist!");  
113                 e5.printStackTrace();  
114             }catch(Exception e1){  
115                 e1.printStackTrace();  
116                 }finally{  
117                     try{  
118                         if(rs!=null){  
119                             rs.close();  
120                             }  
121                         if(ps!=null){  
122                             ps.close();  
123                             }  
124                         if(ct!=null){  
125                             ct.close();  
126                             }  
127                         }catch(Exception e4){}  
128                     }  
129             
130         }else if(e.getActionCommand().equals("quxiao")){
131             this.dispose();//关闭当前窗口
132         }
133     }
134 
135 }

4.主函数.java=newa.java

  1 package stumana;
  2 import java.awt.*;
  3 import java.awt.event.ActionEvent;
  4 import java.awt.event.ActionListener;
  5 import java.io.IOException;
  6 import java.sql.*;
  7 import java.util.*;
  8 import javax.swing.*;
  9 public class newa extends JFrame implements ActionListener{
 10     
 11     JPanel jp1,jp2;
 12     JLabel jlb1;
 13     JTextField jtf1;
 14     JButton jb1,jb2,jb3,jb4;
 15     JTable jt1;
 16     JScrollPane jsp1;
 17     newxsxx xsxx2;
 18     
 19     //Vector集合类 字段(横着) 记录(竖着)
 20     Vector ziduan,jilu;
 21     
 22     //数据库所用到的连接
 23     PreparedStatement ps=null;
 24     Connection ct=null;
 25     ResultSet rs=null;
 26     
 27     public static void main(String[] args){
 28         newa xs=new newa();
 29     }
 30     
 31     public newa() {
 32         this.setSize(500,500);
 33         this.setLocation(100,100);
 34         this.setLayout(new BorderLayout());
 35         //面板
 36         jp1=new JPanel();
 37         jlb1=new JLabel("请输入姓名");
 38         jtf1=new JTextField(10);
 39         jb1=new JButton("查询");
 40         jb1.addActionListener(this);
 41         jb1.setActionCommand("chaxun");
 42         jp1.add(jlb1);jp1.add(jtf1);jp1.add(jb1);
 43         
 44         jp2=new JPanel();
 45         jb2=new JButton("添加");
 46         jb2.addActionListener(this);
 47         jb2.setActionCommand("tianjia");//Command的设置
 48         jb3=new JButton("修改");
 49         jb3.addActionListener(this);
 50         jb3.setActionCommand("xiugai");
 51         jb4=new JButton("删除");
 52         jb4.addActionListener(this);
 53         jb4.setActionCommand("shanchu");
 54         jp2.add(jb2);jp2.add(jb3);jp2.add(jb4);
 55         
 56         ziduan=new Vector();
 57         ziduan.add("学号");
 58         ziduan.add("姓名");
 59         ziduan.add("性别");
 60         ziduan.add("年龄");
 61         ziduan.add("籍贯");
 62         ziduan.add("所在院系");
 63         
 64         jilu=new Vector();//记录必须从数据库里读
 65         
 66         try{
 67             Class.forName("com.mysql.jdbc.Driver");
 68             ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
 69             ps=ct.prepareStatement("select * from xuesheng");
 70             rs=ps.executeQuery();
 71 /*
 72 使用JDBC连接数据库需要四步,第一步加载驱动程序;第二步,连接数据库;第三步,访问数据库;第四步,执行查询;其中在第四步执行查询时,要用statement类的executeQuery()方法来下达select指令以查询数据库,executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们使用。即语句:String sql="select * from"+tableName; ResultSet rs=s.executeQuery(sql);
 73 */  
 74             while(rs.next()){  //把每个数据添加到行里 六个字段  
 75                 Vector hang=new Vector();  
 76                 hang.add(rs.getString(1));  
 77                 hang.add(rs.getString(2));  
 78                 hang.add(rs.getString(3)); 
 79                 hang.add(rs.getInt(4));  
 80                 hang.add(rs.getString(5));  
 81                 hang.add(rs.getString(6));  
 82                 jilu.add(hang);    }  
 83             }catch(SQLException e){  
 84                 System.out.println("SQL is not exist!");  
 85                 e.printStackTrace();  
 86             }catch(Exception e1){  
 87                 e1.printStackTrace();  
 88                 }finally{  
 89                     try{  
 90                         if(rs!=null){  
 91                             rs.close();  
 92                             }  
 93                         if(ps!=null){  
 94                             ps.close();  
 95                             }  
 96                         if(ct!=null){  
 97                             ct.close();  
 98                             }  
 99                         }catch(Exception e){}  
100                     }  
101         //JTable后面的括号里先是记录,后字段  
102         jt1=new JTable(jilu,ziduan);  
103         jsp1=new JScrollPane(jt1);  
104         this.add(jsp1);  
105         this.add(jp1,BorderLayout.NORTH);  
106         this.add(jp2,BorderLayout.SOUTH); 
107         this.setTitle("学生管理系统"); 
108         //让它大小不能改变
109         this.setResizable(false);  
110         this.setDefaultCloseOperation(newa.EXIT_ON_CLOSE);  
111         this.setVisible(true);   
112         }
113     @Override
114     public void actionPerformed(ActionEvent e) {
115         // TODO Auto-generated method stub
116         if(e.getActionCommand().equals("chaxun")){
117             String xingming=this.jtf1.getText().trim();
118             String sql="select * from xuesheng where name='"+xingming+"'";
119             
120             
121              xsxx2=new newxsxx(sql);
122             jt1.setModel(xsxx2);//在表格中显示
123             //System.out.println("aaa");
124         }else if(e.getActionCommand().equals("tianjia")){
125             
126             //newtianjia xsxx3=new newtianjia(sql1);
127             newtianjia tj=new newtianjia(this,"添加学生信息",true);
128             
129             //让它添加显示在页面
130             xsxx2=new newxsxx();
131             jt1.setModel(xsxx2);
132             //System.out.println("bbb");
133         }else if(e.getActionCommand().equals("xiugai")){
134             int li=this.jt1.getSelectedRow();//获取界面选中的行
135             if(li==-1){
136                 JOptionPane.showMessageDialog(this,"请选中要修改的行");
137                 return;
138             }
139             xsxx2=new newxsxx();
140             new newxiugai(this,"修改学生信息",true,xsxx2,li);
141             xsxx2=new newxsxx();
142              jt1.setModel(xsxx2);
143             
144             //System.out.println("ddd");
145         
146             
147             
148             //System.out.println("ccc");
149         }else if(e.getActionCommand().equals("shanchu")){
150             
151             int li=this.jt1.getSelectedRow();//获取界面选中的行
152             if(li==-1){
153                 JOptionPane.showMessageDialog(this,"请选中要删除的行");
154                 return;
155             }
156             xsxx2=new newxsxx();
157             String st=(String)xsxx2.getValueAt(li,0);
158              try{
159                     Class.forName("com.mysql.jdbc.Driver");
160                     ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
161                     ps=ct.prepareStatement("delete from xuesheng where xuehao=?");
162                     ps.setString(1,st);
163                     ps.executeUpdate();
164                   
165                     }catch(SQLException ee){  
166                         System.out.println("SQL is not exist!");  
167                         ee.printStackTrace();  
168                     }catch(Exception e1){  
169                         e1.printStackTrace();  
170                         }finally{  
171                             try{  
172                                 if(rs!=null){  
173                                     rs.close();  
174                                     }  
175                                 if(ps!=null){  
176                                     ps.close();  
177                                     }  
178                                 if(ct!=null){  
179                                     ct.close();  
180                                     }  
181                                 }catch(Exception er){}  
182                             }  
183                          xsxx2=new newxsxx();
184                          jt1.setModel(xsxx2);
185             
186             //System.out.println("ddd");
187         }
188     }  
189 }
 
原文地址:https://www.cnblogs.com/liao13160678112/p/6501953.html