Я делаю приложение Java, которое получает идентификатор в форме javaFX и возвращает его данные в текстовом поле, используя базу данных oracle. Но когда я запускаю приложение, база данных получает соединения и драйвер загружается, но детали не отображаются. Я подозреваю, что это как-то связано с классом ResultSet.
package assignment;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.geometry.*;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import java.sql.*;
public class bobby extends Application {
private Statement statement;
private TextField textfieldId = new TextField();
private TextField textfieldLnane = new TextField();
private TextField textfieldFnane = new TextField();
private TextField textfieldMi = new TextField();
private TextField textfieldAddress = new TextField();
private TextField textfieldCity = new TextField();
private TextField textfieldState = new TextField();
private TextField textfieldTelephone = new TextField();
private Label lblDispplay = new Label();
@Override
public void start(Stage primaryStage) {
// Initialize database connection and create a Statement object
initializeDB();
//Creating Buttons
Button btnView = new Button("View");
Button btnClear = new Button("Clear");
//Creating HBoxes
HBox hBox1 = new HBox(1);
hBox1.getChildren().addAll(new Label("Database Connected"));
HBox hBox2 = new HBox(2);
hBox2.getChildren().addAll(new Label("ID"), textfieldId, lblDispplay);
HBox hBox3 = new HBox(6);
hBox3.getChildren().addAll(new Label("Last Name"), textfieldLnane, new Label("First Name"), textfieldFnane,
new Label("MI"), textfieldMi);
HBox hBox4 = new HBox(2);
hBox4.getChildren().addAll(new Label("Address"), textfieldAddress);
HBox hBox5 = new HBox(4);
hBox5.getChildren().addAll(new Label("City"), textfieldCity, new Label("State"), textfieldState);
HBox hBox6 = new HBox(4);
hBox6.getChildren().addAll(new Label("Telephone"), textfieldTelephone);
HBox hBox7 = new HBox(4);
hBox7.getChildren().addAll(btnView, btnClear);
//Creating TextFields
textfieldId.setPrefColumnCount(10);
textfieldLnane.setPrefColumnCount(12);
textfieldFnane.setPrefColumnCount(13);
textfieldMi.setPrefColumnCount(3);
textfieldAddress.setPrefColumnCount(15);
textfieldCity.setPrefColumnCount(16);
textfieldState.setPrefColumnCount(15);
textfieldTelephone.setPrefColumnCount(13);
//Setting Alignment for HBoxes
hBox1.setAlignment(Pos.BASELINE_LEFT);
hBox2.setAlignment(Pos.BASELINE_LEFT);
hBox3.setAlignment(Pos.BASELINE_LEFT);
hBox4.setAlignment(Pos.BASELINE_LEFT);
hBox5.setAlignment(Pos.BASELINE_LEFT);
hBox6.setAlignment(Pos.BASELINE_LEFT);
hBox7.setAlignment(Pos.BASELINE_CENTER);
//Creating VBox
VBox vBox = new VBox(10);
vBox.setPadding(new Insets(5));
//Inserting HBoxes inside the VBox
vBox.getChildren().addAll(hBox1, hBox2, hBox3, hBox4, hBox5, hBox6, hBox7);
btnView.setOnAction(e -> output());
btnClear.setOnAction(e -> getClearTextBoxes());
// Create a scene and place it in the stage
Scene scene = new Scene(vBox, 650, 280);
primaryStage.setTitle("FindResult"); // Set the stage title
primaryStage.setScene(scene); // Place the scene in the stage
primaryStage.show(); // Display the stage
}
private void initializeDB() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Oracle Driver loaded");
// Establish a connection
Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@calvin.humber.ca:1521/grok ",
UserPass.USERNAME, UserPass.PASSWORD);
System.out.println("Oracle Database connected");
// Create a statement
statement = connection.createStatement();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void output() {
//String id = textfieldId.getText();
int id = Integer.parseInt(textfieldId.getText());
try {
String queryString = "select LAST_NAME,FIRST_NAME,MI,ADDRESS,CITY,STATE,TELEPHONE from STAFF where STAFF.ID = '"
+ id + "'";
ResultSet resultSet = statement.executeQuery(queryString);
System.out.println(resultSet + " " + id);
if (resultSet.next()) {
String lastName = resultSet.getString(1);
String firstName = resultSet.getString(2);
String mi = resultSet.getString(3);
String address = resultSet.getString(4);
String city = resultSet.getString(5);
String state = resultSet.getString(6);
String telephone = resultSet.getString(7);
textfieldLnane.setText(lastName);
textfieldFnane.setText(firstName);
textfieldMi.setText(mi);
textfieldAddress.setText(address);
textfieldCity.setText(city);
textfieldState.setText(state);
textfieldTelephone.setText(telephone);
} else {
textfieldId.setText("ID not found");
textfieldLnane.clear();
textfieldFnane.clear();
textfieldMi.clear();
textfieldAddress.clear();
textfieldCity.clear();
textfieldState.clear();
textfieldTelephone.clear();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
public void getClearTextBoxes() {
textfieldId.clear();
textfieldLnane.clear();
textfieldFnane.clear();
textfieldMi.clear();
textfieldAddress.clear();
textfieldCity.clear();
textfieldState.clear();
textfieldTelephone.clear();
lblDispplay.setText(null);
}
/**
* The main method is only needed for the IDE with limited JavaFX support. Not
* needed for running from the command line.
*/
public static void main(String[] args) {
launch(args);
}
}//End of public class Assignment4
class UserPass {
static final String USERNAME = "N01350373";
static final String PASSWORD = "oracle";
}
Это входит в оператор else и дает мне идентификатор ошибки не найден. Я создал таблицу с данными, вероятно, но не могу выяснить проблему.
введите описание изображения здесь
Изображение SQl таблицы