使用 Jdbctemplate 和 Rowmapping 获取 Bean 而不是 List 对象

Get Bean instead of List object using Jdbctemplate and Rowmapping

我正在尝试获取结果集并将其转换为 Bean。它不工作。但是后来我尝试转换为 bean 列表,它起作用了。谁能告诉我如何使用 Jdbctemplate 和 Rowmapping 直接获取 Bean 对象。

这是我的代码。

String sql = "SELECT * FROM BB.Employeeswhere " +
            "BBEmpPK = ? ";

List<EmployeeDto> deals = (List<EmployeeDto>) getJdbcTemplate().query(
            sql,
            new Object[] {empId},
            new RowMapper<EmployeeDto>() {
                public EmployeeDtomapRow(ResultSet rs, int rowNum) throws SQLException {
                    EmployeeDto d = new EmployeeDto();
                    d.setEmpName(rs.getString(2));                     
                    return d;
                }
            });

理想情况下,这应该 return 只有一行。有什么想法吗?

如果有任何其他没有行映射器的解决方案,那就更好了。因为在 table 中,我有 50 多个列,所以很难用这些字段创建 Bean

如果您只需要单行单列,那么使用它很容易:
String userName = jdbcTemplate().queryForObject(sql, new Object[] {empId}, String.class);

如果您想要多于 1 行和单列,您可以使用:
List<String> userNames = jdbcTemplate.queryForList(sql, new Object[] {empId}, String.class);


边注: 如果你想让它工作,你的实现应该是这样的:

List<EmployeeDto> deals = jdbcTemplate.query(
    sql,
    new Object[] {empId},
    new RowMapper<EmployeeDto>() {
      public EmployeeDto mapRow(ResultSet rs, int rowNum) throws SQLException {
        EmployeeDto d = new EmployeeDto();
        d.setName(rs.getString(2));
        return d;
      }
});