JdbcTemplate queryForInt()は推奨されていません

JdbcTemplate queryForInt()は非推奨です

Springバージョンをアップグレードし、queryForInt()が非推奨になっていることに気づきましたが、何に置き換える必要がありますか?

  private boolean isUserExists(String username) {

        String sql = "SELECT count(*) FROM USERS WHERE username = ?";
        boolean result = false;

        //The method queryForInt(String, Object...) from the type JdbcTemplate is deprecated
        int count = getJdbcTemplate().queryForInt(sql, new Object[] { username });

    if (count > 0) {
        result = true;
    }

    return result;
  }

溶液

queryForInt()queryForLong()は、バージョン3.2.2以降非推奨になっています(間違いがある場合は訂正してください)。 これを修正するには、コードをqueryForObject(String, Class)に置き換えます。

  private boolean isUserExists(String username) {

        String sql = "SELECT count(*) FROM USERS WHERE username = ?";
    boolean result = false;

    int count = getJdbcTemplate().queryForObject(
                        sql, new Object[] { username }, Integer.class);

    if (count > 0) {
        result = true;
    }

    return result;
  }

Springソースコードを確認します。

JdbcTemplate.java

package org.springframework.jdbc.core;

public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {

  //...
  @Deprecated
  public long queryForLong(String sql, Object... args) throws DataAccessException {
    Number number = queryForObject(sql, args, Long.class);
    return (number != null ? number.longValue() : 0);
  }

  @Deprecated
  public int queryForInt(String sql, Object... args) throws DataAccessException {
    Number number = queryForObject(sql, args, Integer.class);
    return (number != null ? number.intValue() : 0);
  }