Spring JdbcTemplate中查询结果生成某个对象
在JdbcTemplate方法中,我们查询时往往需要sql语句和rowMapper映射绑定,因此,Spring提供了BeanPropertyRowMapper来将代码封装。
(1)BeanPropertyRowMapper实现源码
protected void initialize(Class mappedClass) {
this.mappedClass = mappedClass;
this.mappedFields = new HashMap<String, PropertyDescriptor>();
this.mappedProperties = new HashSet();
PropertyDescriptor[] pds = BeanUtils.getPropertyDescriptors(mappedClass);
for (PropertyDescriptor pd : pds) {
if (pd.getWriteMethod() != null) {
this.mappedFields.put(pd.getName().toLowerCase(), pd);
String underscoredName = underscoreName(pd.getName());
if (!pd.getName().toLowerCase().equals(underscoredName)) {
this.mappedFields.put(underscoredName, pd);
}
this.mappedProperties.add(pd.getName());
}
}
}
(2)实例使用代码
注:
1.属性名 “userName” 可以匹配数据库中的列字段 “USERNAME” 或 “user_name”。这样,我们就不需要一个个手动绑定了,大大提高了开发效率。
2.自动绑定,查询出数据的列名必须要在Java实体类中有与子对应属性名。