我试图获取结果集并将其转换为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;
}
});
理想情况下,这应该只返回一行。有什么想法吗?
如果没有行映射器的任何其他解决方案,那将是更好的。因为在表格中,我有50多列,所以很难用这些字段创建一个Bean
答案 0 :(得分:1)
如果您只需要一行和一列,就可以轻松使用:
String userName = jdbcTemplate().queryForObject(sql, new Object[] {empId}, String.class);
如果您想要多于一行和一列,您可以使用:
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;
}
});