使用 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;
}
});
我正在尝试获取结果集并将其转换为 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;
}
});