寻找一种从Java中的给定SQL查询创建动态SQL的方法

Kan*_*nan 5 java sql hibernate dynamic

作为工作流引擎的一部分,我正在实现一个通用的DB步骤,它将执行任何给定的SQL查询并将结果作为XML返回.可以动态配置此工作流,因此传递给执行层的Query将是完全限定的静态SQL查询,例如,

SELECT * FROM USER WHERE USERID = 10
.这种方法的缺点是数据库每次运行时都会编译查询.有没有办法可以通过编程方式从查询中创建动态SQL查询.像JPA这样的Java或Hibernate是否支持这样的功能?

kur*_*der 0

一般来说,您需要使用绑定变量对查询模板的输入进行参数化。绑定变量有两种形式,即 i) 未命名绑定变量(或位置绑定变量);ii) 命名绑定变量。

这可以通过普通 JDBC 来完成。我发现 Spring JDBC 特别容易操作。具体看一下 JDBCTemplate 接口及其实现