【发布时间】:2012-04-10 18:55:25
【问题描述】:
我正在尝试使用 JDBC 在 Servlet 中执行动态 SQL,我需要检查用户请求是否正确执行。
我正在使用返回布尔值的执行命令:TRUE 表示结果是 ResultSet,FALSE 表示它具有表示受查询影响的行数的 int 值。 如果发生数据库访问错误,此方法会抛出 SQLException。
所以我看不出有什么意思告诉用户他的请求是否正确执行(因为语法错误)
【问题讨论】:
我正在尝试使用 JDBC 在 Servlet 中执行动态 SQL,我需要检查用户请求是否正确执行。
我正在使用返回布尔值的执行命令:TRUE 表示结果是 ResultSet,FALSE 表示它具有表示受查询影响的行数的 int 值。 如果发生数据库访问错误,此方法会抛出 SQLException。
所以我看不出有什么意思告诉用户他的请求是否正确执行(因为语法错误)
【问题讨论】:
如果出现数据库错误,您将收到 SQLException。
如果没有数据库错误,但您的应用程序的结果仍然“错误”,您必须在自己的代码中添加一些额外的检查(例如检查受影响的行数,或运行一些额外的查询)。也许更多的约束也是一种选择。
确定是否存在问题后,您可以通知您的用户。您必须按照他可以理解的方式将其分解给他(因为他不知道您的数据库如何工作),它如何影响他,以及他可以做些什么(例如稍后重试,仔细检查他的输入数据,或联系用户支持)。 JDBC 无法帮助您解决这个问题。
如果出现问题,您可能还想记录事件以供将来参考。
【讨论】: