数据库连接后,ecilpse访问不了数据库的数据,data里显示为空的,怎么解决?

package book;
import javax.swing.table.*;
import javax.swing.text.TableView;

import java.awt.BorderLayout;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class menu extends JFrame {
    private   Object[][] data =null;
    //private static final Object[][] data = null;
    private JTable table=null;
    private JPanel jp=new JPanel();
    private JPanel jf=new JPanel();
    private Connection conn = null;
    private PreparedStatement ps = null;
    private ResultSet rs = null;
    private JScrollPane scpDemo;
    void showWindow(){
        if(table==null){
            table=new JTable();

            Object [][]w1=new Object[40][6];
            w1=showstudent();
            //if(data==null)
                //System.out.println("data");
            String[] columns={"SNO","SNAME","SAGE","SSEX","SDEPT","SCOME"};
            DefaultTableModel model=new DefaultTableModel(w1, columns);//往表里加数据和表头
            table.setModel(model);//建立表
    JTableHeader  myt=table.getTableHeader();
    JButton button = new JButton("查询");
    JButton button1 = new JButton("修改");
    JButton button2 = new JButton("删除");
    this.setSize(100, 100);
    jp.add(myt,BorderLayout.NORTH);
    jp.add(table,BorderLayout.CENTER);
    jf.add(button);
    jf.add(button1);
    jf.add(button2);
    jp.add(jf,BorderLayout.SOUTH);
    this.add(jp);
    this.setTitle("管理员");
    this.setBounds(100, 100,600, 800);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
    this.setResizable(false);

    //对当前窗体添加监听方法

    chaxun l1=new chaxun(this);
    button.addActionListener(l1);
        }
    }
    public  Object[][] showstudent()  {

        try {
            conn = connection.getConnection();//获取数据库链接

            System.out.println(conn);
            String sql = "select * from Student ";
            ps = conn.prepareStatement(sql);
            System.out.println(ps);

            rs = ps.executeQuery();
            System.out.println(rs);
            int i=0;

            while(rs.next()) {
                i++;
            }
            System.out.println(i);
            Object [][]data=new Object[i][6];
            i=0;
            while (rs.next()) {


                data [i][0]=rs.getString("Sno");
                data [i][1]=rs.getString("Sname");
                data [i][2]=rs.getInt("Sage");
                data [i][3]=rs.getString("Ssex");
                data [i][4]=rs.getString("Sdept");
                data [i][5]=rs.getDate("Scome");
                //if(data[1][0]==null)

                i++;

            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
        if(data==null)
            System.out.println("data is null");
        return data;


    }

}



package book;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class connection {

    public static Connection getConnection() throws SQLException {
        Connection conn = null;
        try {
        Class.forName("oracle.jdbc.driver.OracleDriver"); //加载数据库驱动
        System.out.println("数据库驱动加载成功!"); //输出的信息
        String url = "jdbc:oracle:thin:@localhost:1521:test"; //获取连接URL
        String user = "Scott"; //连接用户名
        String password = "miss"; //连接密码
         conn = DriverManager.getConnection(url, user, password); //获取数据库连接
        if (conn != null) {
        System.out.println("成功的与Oracle数据库建立连接!!");

        }
        } catch (Exception e) {
        e.printStackTrace();
        }
        return conn; //返回Connection实例
        }
        public static void main(String[] args) {
        connection getConn = new connection();

            try {
                getConn.getConnection();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        System.out.println(getConn);
        }
    }


这是我建的的数据表,里面加了五组数据
CREATE TABLE Student
(Sno varchar2(17) primary key,
Sname varchar2(10) not null UNIQUE,

Sage INT,
Ssex char(2) CHECK(Ssex IN ('男','女') ),
Sdept varchar2(20)
Scome DATE);
图片说明

https://www.cnblogs.com/hindy/p/6986072.html