Java Jdbctemplate查询具有命名参数和行映射器的列表?

时间:2018-09-22 13:20:26

标签: java mysql jdbc spring-jdbc jdbctemplate

我正在尝试实现一种Jdbctemplate查询方法,该方法将使用命名参数映射和行映射器作为附加参数。

到目前为止,我有以下内容:

    final SqlParameterSource namedParameters = new MapSqlParameterSource().addValue("searchTerm", "%" + text + "%");
List<Map<String, String>> result = (List<Map<String, String>>)jdbcTemplate.queryForList(query, namedParameters, (ResultSet rs) ->
{
    List<Map<String, String>> rows = new ArrayList<>();
    while (rs.next())
    {
        Map<String, String> row = new HashMap<>();
        for (int x = 0, j = queryColumns.length; x < j; x++) {
            row.put(queryColumns[x], rs.getString(queryColumns[x]));
        }
        rows.add(row);
    }
    return rows;
});

return result;

这给了我以下错误:

  

错误:(67,83)Java:找不到适合的方法   queryForList(java.lang.String,org.springframework.jdbc.core.namedparam.SqlParameterSource,(ResultSet [...] ws;   })       org.springframework.jdbc.core.JdbcTemplate.queryForList(java.lang.String,java.lang.Class)方法   不适用         (无法推断类型变量T           (实际和正式参数列表的长度不同)       方法org.springframework.jdbc.core.JdbcTemplate.queryForList(java.lang.String,java.lang.Object [],int [],java.lang.Class)   不适用....

是否可以使用Jdbctemplate进行这种查询,我该如何处理?

1 个答案:

答案 0 :(得分:0)

通过NamedParameterJdbcTemplates支持命名参数。 您可以使用类似这样的内容:

let displayMat = cv.Mat.zeros(height, width, cv.CV_8UC1);