如果数据库中已存在记录,则阻止 HTTP POST 请求
Posted
技术标签:
【中文标题】如果数据库中已存在记录,则阻止 HTTP POST 请求【英文标题】:Block HTTP POST Request if a record already exists in the database 【发布时间】:2014-02-09 03:10:52 【问题描述】:我正在开发一个 Java Rest Web 服务来将用户数据存储在 mysql 数据库中。
当我用 curl 测试尝试 POST 时,我得到了
204 - 无内容
在客户端和
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'vinayUserName' for key 'name_UNIQUE'
在服务器端。
如何编写 Web 服务来处理数据库中唯一数据的 409 冲突并将消息传达给客户端?
我正在使用 Jersey 开发 Web 服务,并在客户端使用 Jquery ajax 来发布数据。非常感谢任何帮助。
谢谢
【问题讨论】:
您应该处理 SQL 异常并作为业务验证异常消息重新抛出。 谢谢,我的想法是一旦来自客户端的数据被反序列化,如果它已经存在于数据库中,则必须对其进行测试。如果它不退出,应该有一些警报机制来通知客户端。即使我处理了 SQL 异常,我如何才能将响应传递回客户端? 【参考方案1】:您应该处理 SQLException 、运行时异常和异常,然后使用相应的错误消息作为参数更新 web 服务响应(状态 - '成功/失败',错误消息 - '失败的原因')。
在 jquery 中从参数中提取值并显示给用户。
【讨论】:
非常感谢。帮助很大 codeproject.com/Articles/37727/… --- 请看一下以获得一个想法.. 好的,感谢您的即时回复。以上是关于如果数据库中已存在记录,则阻止 HTTP POST 请求的主要内容,如果未能解决你的问题,请参考以下文章