0

在我使用“while (this.resultSet.next())”的行出现错误,我是 javafx 的新手,仍在学习和观看 youtube 教程,不幸的是我找不到有关如何解决此问题的视频。我的数据库中的数据不会填充表

以下是错误:
原因:java.lang.NullPointerException at sample.TableViewController.Save(TableViewController.java:73) ... 120 更多

 package sample;

import com.mysql.jdbc.ResultSet;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;

public class TableViewController implements Initializable {

    @FXML
    private TableView<ModelTable> table;

    @FXML
    private TableColumn<ModelTable, String> ID;

    @FXML
    private TableColumn<ModelTable, String> FrstName;

    @FXML
    private TableColumn<ModelTable, String> LstName;

    @FXML
    private TableColumn<ModelTable, String> GS;

    @FXML
    private TableColumn<ModelTable, String> Grade1;

    @FXML
    private TableColumn<ModelTable, String> Grade2;

    @FXML
    private TableColumn<ModelTable, String> Grade3;

    @FXML
    private TableColumn<ModelTable, String> Grade4;

    @FXML
    private TableColumn<ModelTable, String> Grade5;

    @FXML
    private TableColumn<ModelTable, String> Grade6;

    Connection con = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;
    ObservableList<ModelTable> oblist = FXCollections.observableArrayList();

    @Override
    public void initialize(URL url, ResourceBundle resourceBundle) {

    }

    public void Save(ActionEvent event) {
        try {
            String query = "Select * from `records`";
            con = DriverManager.getConnection("jdbc:mysql://localhost/records", "root", "");
            preparedStatement = con.prepareStatement(query);
            preparedStatement.executeQuery();
            while (this.resultSet.next()) {
                oblist.add(new ModelTable(resultSet.getString("ID"), resultSet.getString("FrstName"), resultSet.getString("LstName"), resultSet.getString("GS"), resultSet.getString("Grade1"), resultSet.getString("Grade2"), resultSet.getString("Grade3"),resultSet.getString("Grade4"), resultSet.getString("Grade5"), resultSet.getString("Grade6")));
            }

            ID.setCellValueFactory(new PropertyValueFactory<>("ID"));
            FrstName.setCellValueFactory(new PropertyValueFactory<>("First Name"));
            LstName.setCellValueFactory(new PropertyValueFactory<>("Last Name"));
            GS.setCellValueFactory(new PropertyValueFactory<>("Grade/Section"));
            Grade1.setCellValueFactory(new PropertyValueFactory<>("Grade1"));
            Grade2.setCellValueFactory(new PropertyValueFactory<>("Grade2"));
            Grade3.setCellValueFactory(new PropertyValueFactory<>("Grade3"));
            Grade4.setCellValueFactory(new PropertyValueFactory<>("Grade4"));
            Grade5.setCellValueFactory(new PropertyValueFactory<>("Grade5"));
            Grade6.setCellValueFactory(new PropertyValueFactory<>("Grade6"));


            table.setItems(oblist);

        } catch (SQLException ex) {
            Logger.getLogger(TableViewController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
4

0 回答 0