我已经编写了两种方便的方法来访问参数化sql查询/执行的更复杂的方法。
第一个是:
public int sqlExecute(String sql, String... parameters)
我可以像
一样打电话sqlExecute("exec blah ?, ?, ?", "param1", "param2", "param3");
第二个定义为:
public int sqlExecute(String sql, String[]... parameters)
应该用数组[2] [无论大小]调用,在第一列中保存类型(更准确地说是它的" table.column"提供类型的字段...我必须以这种方式实现它),第二个是要使用的参数值。
像
这样的电话sqlExecute("exec blah ?, ?", {"account.name", "foo"}, {"account.region", "bar"});
导致令牌上的语法错误,删除这些令牌" (使用Eclipse Luna)。 这句话不正确吗?
我希望实现的是,我不必定义一些保存数组的变量,而是使用类似方法#1调用方法。 还有另一种方式吗?
答案 0 :(得分:4)
您应该将其称为
sqlExecute("exec blah ?, ?",
new String[] {"account.name", "foo"},
new String[] {"account.region", "bar"});
您可以添加一个辅助方法来缩短它:
public static String[] arr(String... args) {
return args;
}
sqlExecute("exec blah ?, ?",
arr("account.name", "foo"),
arr("account.region", "bar"));
答案 1 :(得分:3)
您需要使用
sqlExecute("exec blah ?, ?",
new String[] {"account.name", "foo"},
new String[] {"account.region", "bar"});