如果在jsp中无法删除记录,则显示错误消息

时间:2015-01-16 10:47:27

标签: mysql jsp servlets

我正在开发基于Web的应用程序,如果用户认为不需要维护,我需要删除父条目。 如果父条目在子表中没有任何记录,则条目将被删除,但如果它在子表中有记录,那么我想显示错误消息,条目存在于哪个表中。

我正在使用jsp和servlet跟踪MVC架构。

1 个答案:

答案 0 :(得分:0)

请注意以下内容,如果您的表定义良好,我的意思是,子记录必须引用父记录(阅读有关FOREIGN KEY的信息)。然后,如果您尝试删除父记录,则有很多选项:

1-您可以允许默认模式:您不能删除父项而不先删除子项(我认为这是您想要的描述)。

2-当你删除父母时,你可以“说”mysql删除所有子记录。

有关此内容的更多信息,请阅读以下文章:Foreign key constraints: When to use ON UPDATE and ON DELETE

假设您想要遵循第一个选项,当您想要删除父键时,可能会发生两件事。

1-没有儿童记录,因此一切都如你所愿。

2-您有引用要删除的父记录的子记录。在这种情况下,mysql不会删除父记录,并将返回代码为1217的错误(无法删除或更新父行:外键约束失败)。然后你可以检测到错误。做你假装用它做的事情,在这种情况下向客户提出错误信息。为了显示消息,这里是我在写这个答案之前发布的评论的副本:

  

一旦检测到,有两个选项,将错误发送到jsp   页。您可以使用用户会话发送它,或者,当您使用时   重定向到jsp页面,你可以在url中发送一个属性   www.my-app./jsppage?error=1。然后jsp页面获取属性和   显示正确的错误消息。