当您将实例传递
RowMapper给
JdbcTemplate方法时
List <Student> students = jdbcTemplateObject.query(SQL, new StudentMapper());
JdbcTemplate根据调用的方法的不同,将在内部使用映射器及其从JDBC连接获取的结果集来创建所需类型的对象。例如,自从您调用以来
JdbcTemplate#query(String,RowMapper),该方法将使用您的String SQL查询数据库,并以这种方式遍历每个“行”
ResultSet:
ResultSet rs = ... // execute queryList<Student> students = ...// some listint rowNum = 0;while(rs.next()) { Student student = rowMapper.mapRow(rs, rowNum); students.add(student); rowNum++;}return students;因此,
Spring的
JdbcTemplate方法将使用
RowMapper您提供的并调用其
mapRow方法来创建预期的返回对象。
您可能希望结合使用Martin Fowler的Data
Mapper和Table Data
Gateway来了解如何分配这些东西并提供低耦合。



