我有一个用 Java 构建的动态生成的 SQL 查询。它的构建方式是绑定一个参数数组和一个动态创建的表示查询的字符串。像这样的东西:
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
有没有推荐的方法来处理这种情况?
慕神8447489
相关分类