1

目前,当我们使用 MappingSqlQuery 从 DB 中获取结果集时,我们执行如下操作:

扩展 MappingSqlQuery

在上面的例子中,我们有一个从 MappingSqlQuery 扩展而来的 LastNameAndAgeQuery 类,并且我们应用了 mapRow 方法。但是,如果我想对查询进行一些更改,假设我想再添加一个员工信息,即他们的生日。这样,我必须添加:

employee.setBirthday(resultSet.getInt("birthday"));

在 maprow 方法和员工类中,我必须添加字段生日并编写 set 和 get 方法。

是否有一个通用实现,如果我想修改查询,我需要做的就是修改查询本身,我不需要更改 maprow 方法,并在员工类中添加字段。或者更好的方法来做到这一点。

先感谢您。

4

2 回答 2

1

您可能想查看 ORM(对象关系映射)解决方案,例如 Hibernate 或 JPA(Java Persistence API)。通常使用 ORM,您只需要操作代表表行的 POJO(普通旧 Java 对象),ORM API 会将其转换为 SQL

于 2013-05-28T22:46:59.577 回答
1

如果您想继续保留,唯一的方法jdbcTemplate是使用通用行映射器,例如使用地图或使用queryForMapapi,因此您可以修改查询以拥有更多列并访问地图以读取其内容。

但请记住,具体的行映射器增加了可读性并且易于维护。

于 2015-03-31T14:40:41.143 回答