我有一个用Java构建的动态生成的SQL查询。构建方法是通过绑定要绑定的参数数组和动态创建的代表查询的String来实现的。像这样:
List<String> bindVariables;
String query = "Select * from TABLE where id = ?";
查询创建完成后。变量根据其在数组中的索引进行绑定。像这样:
query = selectPortion + fromPortion + wherePortion;
// Bind all parameters
for (int i = 0; i < bindVariables.size(); i++) {
queryStatement.setNString(i + 1, bindVariables.get(i));
}
然后执行查询。
当我们只是将变量绑定到WHERE子句时,这很好用,因为它只是将条件和变量添加到数组的末尾。但是,问题是当阵列中已经有一些值后,我想在变量上联接。
wherePortion += "and table1.id = ? ";
bindVariables.add("15");
wherePortion += "and table2.color = ? ";
bindVariables.add("blue");
fromPortion += "INNER JOIN table3 on table3.size = ? ";
bindVariables.add(); //Here is the issue
有没有推荐的方法来解决这种情况?
答案 0 :(得分:0)
似乎我在寻找CROSS JOIN