Я изучаю JavaFx, поэтому я начал с очень простого c приложения базы данных, используя JDB C. Я веб-разработчик, и я из Javascript и из Typescript. Я пытаюсь вызвать метод по нажатию кнопки. Этот метод просто сделает запись sh в базе данных. Сначала я покажу вам свой код.
AddNewBranchRecord. java
public class AddNewBranchRecord {
public static void askInitialDetails() {
Scene scene;
final Stage stage = new Stage();
Button doneButton;
...
doneButton = new Button("Done");
doneButton.setOnAction(e -> {
DataService dataservice = new DataService();
dataservice.insertRecord();
});
...
stage.setTitle("INITIAL DETAILS");
stage.setScene(scene);
stage.showAndWait();
}
}
А вот класс обслуживания данных, который будет взаимодействовать с oracle.
DataService. java
public class DataService {
Connection con;
Statement stmt;
DataService() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","tiger","scott");
stmt=con.createStatement();
}
catch(Exception e){
System.out.println(e);
}
}
public int insertRecord() {
int success = 0;
try {
success=stmt.executeUpdate("insert into emp values(2, 'Tanzeel')");
} catch (SQLException ex) {
Logger.getLogger(DataService.class.getName()).log(Level.SEVERE, null, ex);
}
return success;
}
}
Но когда я нажимаю кнопку Готово , это дает мне следующее исключение:
Исключение в потоке "Поток приложения JavaFX" java .lang.NoSuchMethodError: tasktracker.DataService.insertRecord () Z
Почему я получаю это NoSuchMethod
исключение. Тот же код работает, если я помещаю этот код непосредственно в конструктор класса вызывающего. Есть ли что-то связанное с синхронизацией . Я так думаю, потому что я из Javascript и из Typescript. Я знаю, Java и JS - два разных языка. Пожалуйста, укажите на мои ошибки.
Я использую JDK 8
.