【发布时间】:2021-12-07 03:09:54
【问题描述】:
我有一个字符串参数fruit,它应该接受逗号分隔的字符串,例如:"Banana, Apple, Orange"。如何将此字符串拆分为 3 个数据,例如 "Banana", "Apple", "Orange",以便可以将其传递给下面的 SQL:
StringBuilder sql = new StringBuilder(
"SELECT * FROM fruit f where ");
if (!inputParameters.getFruit().isEmpty()) {
sql.append("f.name IN (:fruit) ");
parameterSource.addValue("fruit", inputParameters.getFruit());
)
}
在这里,我想在 SQL IN 子句中传递 getFruit 的值,该子句已经转换为 3 个数据:"Banana", "Apple", "Orange" 而不是只有 1 个字符串数据 "Banana, Apple, Orange"
【问题讨论】:
-
您可以使用
"Banana, Apple, Orange".split(","),这样您就可以得到这三个字符串的数组,然后您可以对每个字符串执行.trim()以删除空格 -
但是我的 setFruit 是 String,当我尝试这样做时出现错误:inputParameters.setFruit(fruits.split(",");
fruitsobject contains the"Banana, Apple, Orange" -
inputParameters.getFruit()实际返回的是什么类型? -
inputParameters.getFruit()返回一个字符串。我想要实现的是我上面的 SQL 查询应该接受 3 个数据“香蕉”、“苹果”、“橙色”,而不是只有一个字符串 -
使用从拆分中获得的数据 (
String[]),如果您愿意,您必须做一个字符串模板,每个水果都有 0,1,2 个索引
标签: java sql spring postgresql spring-mvc