目前,当我们使用MappingSqlQuery从DB获取结果集时,我们会执行以下操作:
在上面的例子中,我们从MappingSqlQuery扩展了一个LastNameAndAgeQuery类,并且我们应用了mapRow方法。但是,如果我想在查询中进行一些更改,请假设我想再添加一份员工信息,即他们的生日。通过这种方式,我必须添加:
employee.setBirthday(resultSet.getInt("birthday"));
在maprow方法和employee类中,我必须添加字段Birthday并编写set和get方法。
是否存在一个通用实现,如果我想修改查询,我需要做的就是修改查询本身,我不需要更改maprow方法,并在employee类中添加字段。或者更好的方法来做到这一点。
提前谢谢。
答案 0 :(得分:1)
您可能希望查看ORM(对象关系映射)解决方案,例如Hibernate或JPA(Java Persistence API)。通常使用ORM,您只需要操作代表表行的POJO(普通旧Java对象),ORM API将其转换为SQL
答案 1 :(得分:1)
如果您想继续保留jdbcTemplate
,唯一的方法就是使用地图或使用queryForMap
api等通用行映射器,这样您就可以修改查询以获得更多列并访问地图以阅读其内容。
但请记住,具体的行映射器可提高可读性并易于维护。