我在项目中使用Spring JdbcTemplate类。我有以下代码:
List<PersonDTO> personList = jdbcTemplate.query(query, new RowMapper<PersonDTO>() {
@Override
public PersonDTO mapRow(ResultSet rs, int rowNumber) throws SQLException {
PersonDTO personDTO = new PersonDTO ();
personDTO.setPerId(rs.getString("COL_ONE"));
personDTO.setIdTypeCd(rs.getString("COL_TWO"));
return personDTO;
}
});
现在我想用java8 lamda表达式替换匿名类RowMapper
,如下所示:
Runnable r1 = () -> {
System.out.println("My Runnable");
};
有可能???
答案 0 :(得分:4)
AFAIK RowMapper
是一个功能界面,所以这可行。 lambda表达式不能声明已检查的异常,因此您需要包装该...
jdbcTemplate.query(query, (ResultSet rs, int rowNumber) -> {
PersonDTO personDTO = new PersonDTO ();
personDTO.setPerId(rs.getString("COL_ONE"));
personDTO.setIdTypeCd(rs.getString("COL_TWO"));
return personDTO;
});
注释点是:由于该功能接口已经声明抛出异常,因此无需捕获它。
答案 1 :(得分:2)
试试这个
ready