zoukankan      html  css  js  c++  java
  • 学生管理系统

    目录

    视频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 }
     
  • 相关阅读:
    ubuntu 10.04安装增强功能 共享文件夹
    CRF简介入门
    Ant 的build.xml 详解
    eclipse中各种颜色和背景的设置
    第13章 类继承 --抽象基类
    第13章 类继承
    团队开发之绩效考核二
    站立会议
    团队站立会议
    团队开发站立会议
  • 原文地址:https://www.cnblogs.com/liao13160678112/p/6501953.html
Copyright © 2011-2022 走看看