相当于PreparedStatement

时间:2018-07-24 18:31:45

标签: java string

对于SQL查询,我们有prepareStatement对象,该对象在编译时进行编译,我们可以在运行时将通配符(在本例中为?)设置一个值。

在Java中是否存在用于非SQL工作的等效方法,例如将StringFormat视为假设类:

StringFormat sf = new StringFormat("ams_?_xyz);
List<String> Codes = new ArrayList<>(Arrays.asList("a", "b"));
for(Code c: Codes) {
  sf.set(1, c);
  String str = sf.getString();
  // do something
}

3 个答案:

答案 0 :(得分:1)

您可以获得的最接近的是Console.WriteLine($"The average of {x}, {y} and {z} is: {result}");

String.format()

答案 1 :(得分:0)

您可以使用静态String.format方法来实现:

String template = "aws_%s_xyz";
List<String> codes = new ArrayList<>(Arrays.asList("a", "b"));

for(String code : codes){
    String str = String.format(template, code);
}

在准备好的语句中,"%s"就像问号?

答案 2 :(得分:0)

您可以使用String.format,外观为

public static String format​(String format, Object... args)

这需要一个String和一个varargs,您的代码可以是:

List<String> codes = Arrays.asList("a", "b");
String someString = "ams_%s_xyz";
someString = String.format(someString, codes.toArray());

这将返回:

ams_a_xyz
    ^

如果有例如,它将从数组中一个接一个地替换它,并将其替换为String:

String someString = "ams_%s_xyz__%s";
                         ^^      ^^

这将返回:

ams_a_xyz__b
    ^      ^

依此类推