我正在尝试使用SceneBuilder和SQLlite在JavaFX中构建简单的学校管理系统。我以前在Swing中创建了类似的App,并且运行良好,没有任何异常。 我将数据库设置为在TableView中显示 当我想向数据库中添加新数据“学生”时,将执行代码,并且在我得到异常后, SQLException查询不会返回结果,问题是,代码已执行并将学生添加到数据库中,所以我不明白为什么会收到此错误,我尝试了几种不同的方法,但是它不起作用。
@FXML public void addStudentData(ActionEvent action) throws SQLException
{
con = ConnectionDB.connect();
String id = idbox.getText();
String name = namebox.getText();
String sname = snamebox.getText();
String dob = dobbox.getText();
String eng = engbox.getText();
String math = mathbox.getText();
String sc = sciencebox.getText();
String art = artbox.getText();
String pe = pebox.getText();
String drama = dramabox.getText();
String geo = geobox.getText();
String it = itbox.getText();
String rd = rdbox.getText();
String sqlp = "INSERT INTO DETAILS (ID,name,SecondName,BirthDate,ENG,MATHS,SC,ART,PE,DRAMA,GEO,IT,RD) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) ";
PreparedStatement pr = null;}
try {
pr = con.prepareStatement(sqlp);
pr.setString(1, id);
pr.setString(2, name);
pr.setString(3, sname);
pr.setString(4, dob);
pr.setString(5, eng);
pr.setString(6, math);
pr.setString(7, sc);
pr.setString(8, art);
pr.setString(9, pe);
pr.setString(10, drama);
pr.setString(11, geo);
pr.setString(12, it);
pr.setString(13, rd);
ResultSet rs1 = pr.executeQuery();
}
catch (SQLException e) {}
finally {pr.execute();pr.close();}}
我相信错误在这里,我检查了表和名称,我尝试将PreparedStatement更改为Statement,将executeQuery更改为executeUpdate,但这也不起作用。
When I click on add Student I get this
But Student still is added to database
这似乎不是一个很大的问题,因为已执行代码并将数据添加到数据库中,但事实并非如此。