0

JdbcTemplate.query()/ queryForList()を使用してnamedParameterを使用してクエリを実行し、結果セットを「ユーザー」のリストに保存するにはどうすればよいですか?

ユーザークラス:

public class User {

    String name = null;
    String id = null;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return name;
    }
    public void setId(String id) {
        this.id = id;
    }
}

クエリ:

SELECT name, id FROM USERS where email=:email

私は次のようなものを探しています:

ArrayList<User> userList = jdbcTemplate.query(sql_query, 
                                              ...some_mapper..., etc);
4

1 に答える 1

3

質問に対する答えは、インターネット上の1か所では入手できないようです。これが私が見つけたものです:

結果セットをに追加するには、次の関数List<>を使用できます。NamedParameterJdbcTemplate.query()

NamedParameterJdbcTemplate jdbcTemplate;

ArrayList<User> usersSearchResult = (ArrayList<User>) jdbcTemplate.query(
  USER_LIST_TP_query,
  namedParameters,
  new RowMapperResultSetExtractor<User>(new UserRowMapper(), 20));

RowMapperResultSetExtractorまた、JDBCが結果セットの各行をタイプに変換する方法を理解できるように、カスタムを定義する必要がありますUser

private class UserRowMapper implements RowMapper<User> {

  public User mapRow(ResultSet rs, int rowNum) throws SQLException {
    User user = new User();

    user.setId(rs.getString("ID"));
    user.setName(rs.getString("NAME"));

    return user;
  }
}
于 2012-09-11T07:53:21.497 に答える