如何将Spring jdbcTemplate中的Array / List设置为参数?

时间:2016-08-08 09:12:17

标签: java sql spring jdbc

我有多个占位符的SQL查询'',它是动态构建的,我想放置值数组来替换占位符。阵列的大小每次都可以不同。数组按顺序包含所有参数。

return jdbcTemplate.query(Queries.someQuery,
    new Object[] {/* Array must be here */},
    new ResultSetExtractor<List<String>>() {
        @Override
        public List<String> extractData(ResultSet resultSet) 
        }
    });

sql代的示例:

for (int j = 0; j < y; j++) {
        conditionsBuilder.append("\n and p"+i+".object_id=o.object_id\n" +
                "    and p"+i+".attr_id =?\n" +
                "    and p"+i+".value =?\n");
        tablesBuilder.append(",patameters p"+i+" ");
        i++;
    }

2 个答案:

答案 0 :(得分:2)

使用let formData = {subJudul:[ 'sub judul 1 value here', 'sub judul 2 value here', 'sub judul 3 value here', 'next new input' ]};

ArrayList

ArrayList<Object> values = new ArrayList<>; 循环中,您应该按照它们在查询中出现的顺序添加值:

for

然后把它变成一个数组:

values.add(value);

答案 1 :(得分:0)

使用Guava作为一行:

return jdbcTemplate.query(query, Lists.newArrayList(v1, v2).toArray(), rse);