我需要 Java 来触发 MS SQL 上的查询,例如
select * from customer
where customer.name in ('abc', 'xyz', ...,'pqr');
但我的 IN 子句值采用字符串 ArrayList 的形式。例如:列表看起来像 {"abc","xyz",...,"pqr"}
我创建了一个准备好的声明:
PreparedStatement pStmt = conn.prepareStatement(select * from customer
where customer.name in (?));
String list= StringUtils.join(namesList, ",");
pStmt.setString(1,list);
rs = pStmt.executeQuery();
But the list就好像“abc,xyz,..,pqr”,但我想要它作为“'abc','xyz',...,'pqr'”这样我就可以将它传递给准备声明。
如何在没有 GUAVA 帮助程序库的情况下在 JAva 中完成此操作。
提前致谢!!
我知道这是一篇非常老的文章,但以防万一有人正在寻找如何以 Java 8 的方式做到这一点:
private String join(List<String> namesList) {
return String.join(",", namesList
.stream()
.map(name -> ("'" + name + "'"))
.collect(Collectors.toList()));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)