【问题标题】:Check in JDBC that a request execute correctly在 JDBC 中检查请求是否正确执行
【发布时间】:2012-04-10 18:55:25
【问题描述】:

我正在尝试使用 JDBC 在 Servlet 中执行动态 SQL,我需要检查用户请求是否正确执行。

我正在使用返回布尔值的执行命令:TRUE 表示结果是 ResultSet,FALSE 表示它具有表示受查询影响的行数的 int 值。 如果发生数据库访问错误,此方法会抛出 SQLException。

所以我看不出有什么意思告诉用户他的请求是否正确执行(因为语法错误)

【问题讨论】:

    标签: java jdbc


    【解决方案1】:

    如果出现数据库错误,您将收到 SQLException。

    如果没有数据库错误,但您的应用程序的结果仍然“错误”,您必须在自己的代码中添加一些额外的检查(例如检查受影响的行数,或运行一些额外的查询)。也许更多的约束也是一种选择。

    确定是否存在问题后,您可以通知您的用户。您必须按照他可以理解的方式将其分解给他(因为他不知道您的数据库如何工作),它如何影响他,以及他可以做些什么(例如稍后重试,仔细检查他的输入数据,或联系用户支持)。 JDBC 无法帮助您解决这个问题。

    如果出现问题,您可能还想记录事件以供将来参考。

    【讨论】:

    • 所以没有办法检查查询语法(我的例子是MySql)?
    • 如果查询语法不正确,当你尝试执行它时会得到一个SQLException。相关的错误消息可能会也可能不会很有帮助。通常没有完全动态的 SQL(用户可以直接输入)。它应该由您的程序创建,并且始终正确。
    猜你喜欢
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2011-05-07
    相关资源
    最近更新 更多