jdbc 模板计数查询ForInt并传递多个参数

2022-09-02 23:28:56

如何传入多个参数来获取计数。我试过这个,jdbcTemplatequeryForInt

Integer count = this.jdbcTemplate
    .queryForInt("select count(name) from table_name where parameter1 = ? and parameter2 = ?", new Object[]{parameter1,parameter2});

但它表现为罢工。queryForInt


答案 1

queryForInt() 和 queryForLong() 自版本 3.2.2 起都被弃用了(如果错误,请纠正我)。若要修复此问题,请将代码替换为 queryForObject(String, Class)。

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

根据春季文档

int queryForInt(String sql, Map args)

已弃用。使用 NamedParameterJdbcTemplate 提供的命名参数支持和包含参数的映射,查询在 SQL 查询中传递的 int。

int queryForInt(String sql, Object...args) 已弃用

使用参数的标准“?”占位符和可变数量的参数查询在 SQL 查询中传递的 int。int queryForInt(String sql, SqlParameterSource args) Deprecated.使用 NamedParameterJdbcTemplate 提供的命名参数支持和包含这些参数的 SqlParameterSource 提供的对在 SQL 查询中传递的 int 的查询。


答案 2

根据当前版本的Spring Boot,

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

已弃用。因此,请尝试以下给定代码:

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

请参阅春季文档。


推荐