禁止使用JDBC进行所有删除/更新/插入?

时间:2012-06-14 10:42:07

标签: java jdbc

在我的一个应用程序中,我为用户提供了对数据库发出直接SQL查询的能力。他们将SQL文本键入文本框,然后我就像使用JDBC一样运行它。

显然我非常信任这些用户。但我想以编程方式将它们限制为仅发出SELECT语句。它们永远不应该DELETE / UPDATE / INSERT。我想也许JDBC本身可以帮助我。我在java.sql.Statement类中找到了executeQuery()方法。但是这个方法允许我调用DELETE(也可能是UPDATE和INSERT)。它确实抛出一个Exception,因为没有返回ResultSet,只是在删除记录之后。

所以,我在这里问一下,JDBC中是否有任何方法可以确保仅在查询时才执行SQL语句?或者我是否必须自己解析声明并确保它符合我的意愿?

1 个答案:

答案 0 :(得分:4)

我建议您使用缺少DELETE / UPDATE和INSERT权限的用户连接到DBMS。