Spring JdbcTemplate - 如何将查询限制为SELECT?

时间:2011-02-04 18:20:33

标签: java spring jdbc spring-jdbc

我正在编写一个使用JdbcTemplate并执行用户查询的程序。有没有办法通过Spring JDBC包我可以将用户查询限制为SELECT语句?我不希望用户执行任何更新底层数据库的查询。

谢谢,
KTM

3 个答案:

答案 0 :(得分:4)

Spring JDBC无法自动为您执行此操作,您必须编写自己的适配器并确保所有代码都调用适配器。

您是否考虑过使用数据库权限来实现您的目标?这取决于您希望安全性的粒度,但最好创建一个“应用程序”数据库用户,该用户是与数据库所有者帐户不同的帐户。然后,您可以基于每个表授予适当的权限。

答案 1 :(得分:1)

Spring安全性就是为此而设计的。它有一个用于处理访问的预定义​​表。

答案 2 :(得分:0)

如果您有选择,请考虑使用JPA(Java Persistence API); Query-objects具有单独的 getResultList getSingleResult -methods,如果查询是DELETE或UPDATE则抛出异常(删除和更新仅通过 executeUpdate处理) )。