来自数据库的 Java 数据显示?

标签 java database swing jtable derby

package grid;

import java.awt.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import java.lang.String;

public class ViewData extends JFrame{
   JTable table;
   String rowData[][]=new String[100][100];
    String columnNames[]=new String[3] ;
     static ViewData r;
    public  ViewData() throws ClassNotFoundException, SQLException{
        setLayout(new FlowLayout());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);    

        columnNames[0] ="Name";
        columnNames[1] ="Regno";
        columnNames[2] ="Email";

        r.load();
        table=new JTable(rowData, columnNames);
        add(new JScrollPane(table));
        pack();
    }
   public static void main(String[] args) throws ClassNotFoundException, SQLException {
        r=new ViewData();
    }

     public void load() throws ClassNotFoundException, SQLException{
            Class.forName("org.apache.derby.jdbc.ClientDriver");
            Connection con=DriverManager.getConnection("jdbc:derby://localhost:1527/swap_db","swap","swap");
            String q="SELECT * FROM STUDENT";
            Statement stm=con.createStatement();
            ResultSet rs=stm.executeQuery(q);
            int i=0;
            while(rs.next()){
                String name=rs.getString(1);
                String regno=rs.getString(2);
                String email=rs.getString(3);

                rowData[i][0]=name;
                rowData[i][1]=regno;
                rowData[i][2]=email;
                i++;

            }        
        }
}

我试图在 JTable 中显示数据库中的数据,但它显示以下错误。

Exception in thread "main" java.lang.NullPointerException
at grid.ViewData.(ViewData.java:23)
at grid.ViewData.main(ViewData.java:29)
BUILD STOPPED (total time: 5 seconds)

这个程序有什么错误?

最佳答案

下面的语句调用ViewData的构造函数;

r=new ViewData();

但是在构造函数中,你调用了:

r.load();

r 在构造函数返回之前为 null,这就是它抛出 NullPointerException 的原因。

所以可以做的是在创建实例后将 r.load() 从构造函数移动到 main 方法。

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    r=new ViewData();
    r.load();
}

关于来自数据库的 Java 数据显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33370334/

相关文章:

java - 如何在java中制作绘图缓冲区

java - jar 作为 ubuntu 上的守护进程使用 100% cpu

Java - 来自受限包的访问方法

c# - 将 Stream 转换为 Image 时参数无效异常

php - 创建数组键 user_id

Java Swing Timer 只运行一次

java - JLayeredPane 中的透明 JPanel

java - java中程序执行完成后才能看到输出

java - 用不同的方法向java程序添加计数器

ruby-on-rails - Ruby on Rails 中的自定义字段/表单