JdbcTemplate如何使用count queryForInt并传递多个参数?

26
我该如何在jdbcTemplatequeryForInt方法中传递多个参数来获取计数?我尝试过这样做:
Integer count = this.jdbcTemplate
    .queryForInt("select count(name) from table_name where parameter1 = ? and parameter2 = ?", new Object[]{parameter1,parameter2});

但是它显示queryForInt有错误。
2个回答

48

从版本3.2.2开始,queryForInt()和queryForLong()都已被弃用(如果我错了请纠正)。为了解决这个问题,请使用queryForObject(String, Class)替换代码。

 this.jdbcTemplate.queryForObject(
                    sql, Integer.class, 
                    parameter1, parameter2);

根据 spring docs
int queryForInt(String sql, Map args)
已过时。使用 NamedParameterJdbcTemplate 提供的命名参数支持和包含参数的映射,查询一个 int。
int queryForInt(String sql, Object... args)
已过时。使用标准的“?”占位符和可变数量的参数,查询一个 int。
int queryForInt(String sql, SqlParameterSource args)
已过时。使用 NamedParameterJdbcTemplate 提供的命名参数支持和包含参数的 SqlParameterSource,查询一个 int。

1
如果这篇回答对你解决问题有所帮助,请将其标记为“已接受的答案”。这样可以帮助其他遇到类似问题的人。 - Naruto
编辑这个内容以包括当前版本的whack-a-mole弃用轮播。实际上,当前版本更好,因为它使用了varargs语法,并将返回类型移动到第二个参数。 - Shai Almog

7

根据当前版本的Spring Boot,

 this.jdbcTemplate.queryForObject(
                sql, new Object[] { parameter1,parameter2 }, Integer.class);

已弃用,请尝试下面给出的代码:

 this.jdbcTemplate.queryForObject(
                sql, Integer.class, new Object[] { parameter1,parameter2 });

请参考Spring文档中的这部分内容


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接