RowMapper 示例 | 通过 Spring JdbcTemplate 提取记录

2025年3月17日 | 阅读 3 分钟

与 ResultSetExtractor 类似,我们可以使用 RowMapper 接口,通过 JdbcTemplate 类的 query() 方法从数据库中提取记录。 在执行时,我们需要传递 RowMapper 的实例。

使用 RowMapper 的 query 方法的语法

RowMapper 接口

RowMapper 接口允许将关系的一行映射到用户定义类的实例。 它在内部迭代 ResultSet 并将其添加到集合中。 因此,我们不需要像 ResultSetExtractor 那样编写大量代码来提取记录。

RowMapper 优于 ResultSetExtractor 的优势

RowMapper 节省了大量代码,因为它在内部将 ResultSet 的数据添加到集合中。

RowMapper 接口的方法

它只定义了一个方法 mapRow,该方法接受 ResultSet 实例和 int 作为参数列表。 该方法的语法如下所示


RowMapper 接口的示例,用于显示表的所有记录

我们假设您已在 Oracle10g 数据库中创建了下表。

Employee.java

此类包含 3 个具有构造函数和 setter 和 getter 的属性,以及一个额外的 toString() 方法。

EmployeeDao.java

它包含一个属性 jdbcTemplate 和一个方法 getAllEmployeesRowMapper。

applicationContext.xml

DriverManagerDataSource 用于包含有关数据库的信息,例如驱动程序类名、连接 URL、用户名和密码。

在 DriverManagerDataSource 类型的 JdbcTemplate 类的属性中有一个名为 datasource 的属性。 因此,我们需要在 JdbcTemplate 类的 datasource 属性中提供 DriverManagerDataSource 对象的引用。

在这里,我们在 EmployeeDao 类中使用 JdbcTemplate 对象,所以我们通过 setter 方法传递它,但是您也可以使用构造函数。

Test.java

此类从 applicationContext.xml 文件获取 bean,并调用 EmployeeDao 类的 getAllEmployeesRowMapper() 方法。