如何使用
ResultSetExtractor
从数据库中检索数据?
这里我使用oracle 10g作为后端。如果从员工表中搜索员工详细信息,使用 ResultSetExtractor
或 RowMapper
哪个更好?
从 java 8 开始,还可以使用闭包(lambda)作为行映射例程:
String sql = "select first_name, last_name from PERSON where id = ?";
public Person jdbcTemplate.query(sql,(rs)->{return new Person(rs.getString("first_name"), rs.getString("last_name"));}, int id);
第一个方法参数是您的查询, 第二 - 你的映射器 - 需要 Person(String, String) 构造函数。 “first_name”、“last_name”是数据库列名称。 第三 - id 的参数,它是一个可变参数,您可以在其中放置更多参数。
使用 ResultSetExtractor 的更简单示例:
MyDataStructure result = jdbcTemplate.query(sql, new ResultSetExtractor<MyDataStructure>() {
@Override
public MyDataStructure extractData(final ResultSet rs) throws ... {
// collect data from rs here ...
return myData;
}
});