record类型是JDK14新出的功能,适合作为数据传输类型,形式简洁,默认有getter但是没有默认构造器和setter。如下:
public record Person(String name, int age, String city) {
}
在一些情况下比如通过反射来创建Person实例时, 期望目标类有一个默认的无参构造函数或者setter方法来设置属性值,这种情况可以手动地从ResultSet中提取值并创建新的Person记录实例
public class PersonRowMapper implements RowMapper<Person> {
@Override
public Person mapRow(ResultSet rs, int rowNum) throws SQLException {
String name = rs.getString("name");
int age = rs.getInt("age");
String city = rs.getString("city");
return new Person(name, age, city);
}
}