在 queryForList 中获取 IncorrectResultSetColoumnCount 异常
Getting IncorrectResultSetColoumnCount exception in queryForList
我正在使用 queryForList 从数据库中获取列表,
我的代码看起来像,
List<RoleIdBean> role = jdbcTemplate.queryForList(query , new Object[] {userId},RoleIdBean.class);
query = select * from role where userid=?
role table 有两个列,roleIdBean 有两个变量。
当我 运行 这段代码是 expected 1, actual 2
有人可以检查一下我哪里出错了,并协助如何使用这个方法。
正如 M. Deinum 提到的,您必须提供 RowMapper
接口的实现,以便 Spring 知道 table 中的哪些列映射到对象的哪些属性(RoleIdBean
).比如像这样:
List<RoleIdBean> list = jdbcTemplate.query("SELECT * FROM role_id", new Object[]{ userId }, new RowMapper<RoleIdBean>() {
@Override
public RoleIdBean mapRow(ResultSet rs, int rowNum) throws SQLException {
RoleIdBean bean = new RoleIdBean();
// Set properties from the ResultSet, e.g:
// bean.setRole(rs.getString(1));
return bean;
}
});
我正在使用 queryForList 从数据库中获取列表,
我的代码看起来像,
List<RoleIdBean> role = jdbcTemplate.queryForList(query , new Object[] {userId},RoleIdBean.class);
query = select * from role where userid=?
role table 有两个列,roleIdBean 有两个变量。
当我 运行 这段代码是 expected 1, actual 2
有人可以检查一下我哪里出错了,并协助如何使用这个方法。
正如 M. Deinum 提到的,您必须提供 RowMapper
接口的实现,以便 Spring 知道 table 中的哪些列映射到对象的哪些属性(RoleIdBean
).比如像这样:
List<RoleIdBean> list = jdbcTemplate.query("SELECT * FROM role_id", new Object[]{ userId }, new RowMapper<RoleIdBean>() {
@Override
public RoleIdBean mapRow(ResultSet rs, int rowNum) throws SQLException {
RoleIdBean bean = new RoleIdBean();
// Set properties from the ResultSet, e.g:
// bean.setRole(rs.getString(1));
return bean;
}
});