我在javaFX/SQL中的库应用程序有点问题
我的LibraryApp有一个小问题,因此我的控制台显示该错误: 在PHPmyAdmin中,我创建了几个表:我在javaFX/SQL中的库应用程序有点问题,java,mysql,javafx,phpmyadmin,Java,Mysql,Javafx,Phpmyadmin,我的LibraryApp有一个小问题,因此我的控制台显示该错误: 在PHPmyAdmin中,我创建了几个表: 我把它们连在一张桌子上: 但是,当我想添加新的lend phpMYAdmin时,它的工作非常完美 下面是应该添加到应用程序和数据库的代码: @Override public boolean addLend(int userId, int bookId, String returnDate) { try { PreparedStatement p
@Override
public boolean addLend(int userId, int bookId, String returnDate) {
try {
PreparedStatement preparedStatementInsert = connector.getPreparedStatement(
"INSERT INTO lend VALUES(?,?,?,?,?)");
preparedStatementInsert.setInt(1, 0);
preparedStatementInsert.setInt(2, userId);
preparedStatementInsert.setInt(3, bookId);
preparedStatementInsert.setString(4, returnDate);
preparedStatementInsert.setTime(5, null);
preparedStatementInsert.execute();
preparedStatementInsert.close();
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
private void tryAddLend() {
int userId = (textCustomeridAddLend.getText().trim().length());
int bookId = (textbookidAddLend.getText().trim().length());
String returnDay = textReturnDayAddLend.getText();
if (!checkAddLendData()) {
return;
}
if (mainDao.addLend(userId, bookId, returnDay)) {
Utils.createSimpleDialog("login", "", "added correctly");
} else {
Utils.createSimpleDialog("login", "", "error");
}
loadLends();
}
堆栈跟踪图像链接几乎不可读,但我确实非常清楚地看到了违反约束的错误。这种错误通常意味着您正在添加一个子记录,该子记录指向另一个不存在的表中的父记录。我怀疑这个查询在PHP管理员那里运行得很好;我认为它也会失败。堆栈跟踪中的错误非常明显(您应该粘贴跟踪,而不是图像),您违反了外键约束:lend_ibfk_1。在数据库中找不到已建立的用户id。最好显示用于创建表的SQL语句(作为文本),而不是发布phpMyAdmin的屏幕截图。另外,最好将stacktrace作为代码块而不是屏幕截图发布。。。