如何在JAVA中的字符串数组列表中创建单引号中的逗号分隔字符串

2022-09-03 04:10:27

我在Java中需要对MS SQL进行查询,例如

select * from customer 
where customer.name in ('abc', 'xyz', ...,'pqr');

但是我有这个IN子句值,其形式是字符串的数组列表。例如:列表看起来像{“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();

但是列表就像“abc,xyz,..,pqr”,但我希望它作为“'abc','xyz',..,'pqr'”,以便我可以将其传递给Prepments Statement。

如何在JAva中使用GUAVA助手库。

提前致谢!!


答案 1

我知道这是一个非常古老的帖子,但以防万一有人正在寻找如何以Java 8的方式做到这一点:

private String join(List<String> namesList) {
    return String.join(",", namesList
            .stream()
            .map(name -> ("'" + name + "'"))
            .collect(Collectors.toList()));
}

答案 2
List<String> nameList = ...    
String result = nameList.stream().collect(Collectors.joining("','", "'", "'"));