【问题标题】:Block HTTP POST Request if a record already exists in the database如果数据库中已存在记录,则阻止 HTTP POST 请求
【发布时间】: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 异常,我如何才能将响应传递回客户端?

标签: java mysql ajax jersey


【解决方案1】:

您应该处理 SQLException 、运行时异常和异常,然后使用相应的错误消息作为参数更新 web 服务响应(状态 - '成功/失败',错误消息 - '失败的原因')。

在 jquery 中从参数中提取值并显示给用户。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-17
  • 2019-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
相关资源
最近更新 更多