【问题标题】:Saving empty fields to DB despite error checks in place?尽管进行了错误检查,但仍将空字段保存到数据库?
【发布时间】:2021-12-26 11:07:14
【问题描述】:

我有一个约会数据库。我想更新/修改约会,同时不允许空文本字段。这些字段都预先填充了约会的原始详细信息。

我有一个错误检查以查看文本字段是否为空(还有更多,但这让想法得到了理解):

if (modifyAppointmentTitle.getText() == null || modifyAppointmentDescription.getText() == null)
{
Alert alert3 = new Alert(Alert.AlertType.ERROR);
alert3.setHeaderText("INVALID ENTRIES");
alert3.setContentText("Please enter a valid value for each required field!");
alert3.showAndWait();
}

然后我调用我的更新函数:

DBAppointments.updateAppointment(title, description, location, type, startToSave, endToSave, 
customerIDint, userID.getUserID(), contact.getContactID(), 
selectedAppointment.getAppointmentID());

我应该收到关于空文本字段的错误,但什么也没发生,它仍在将修改后的约会保存到数据库中。我在想,由于我从数据库中提取信息,应用程序认为这些字段不是空的,因为它们是预先填充的?我有相同的代码来添加约会,它会正确触发。

【问题讨论】:

  • 如果需要SQL协助,我们需要查看问题SQL。
  • 这不是你检查字符串是否为空的方式,所以例如你的代码仍然传递空的非空字符串,我建议使用一些众所周知的帮助类,如 Apache StringUtils
  • 字段不是null,它们是空的,即字符串长度为零
  • @scarywombat 我阅读了您的评论并认为“也许某些东西仍然存在”所以我添加了另一个检查。 “(modifyAppointmentTitle.getText() == null || modifyAppointmentTitle.getText().trim().isEmpty())” 通过使用 .trim().isEmpty(),我现在触发了错误检查。感谢您的推动!

标签: java sql


【解决方案1】:

在评论者的轻微推动后,我开始认为,尽管文本字段在视觉上是空的,但它可能仍然具有一些潜在的价值。

我添加了一个额外的参数:

if (modifyAppointmentTitle.getText() == null || modifyAppointmentTitle.getText().trim().isEmpty()) {}

现在正在触发错误消息。谢谢大家的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2022-12-31
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    相关资源
    最近更新 更多