是否有 Jdbc 标准一种通过jdbcTemplate.query
byoffset
和过滤结果返回的方法limit
?
还有一种简单的方法可以将ResultSet
(由过滤查询返回,如上所示)转换为List<Map<String,String>>
结果吗?List
行值存储在哪里Map
?行名称是映射键,行值是映射值。
或者有一种标准方法可以将行从 a 中取出ResultSet
?
看看 JdbcTemplate#setMaxRows(int)
这应该应用 LIMIT/TOP。
--
我不认为 OFFSET 定义得这么好,您可能需要将其硬塞到相关 SQL 方言中的 SQL 语句中。
--
要过滤 JDBC 驱动程序返回的行并可能构建到 Java 用户定义的对象类型中,请查看 ResultSetExtractor 和 RowMapper。
ResultSetExtractor 这用于使用 ResultSet#next() 迭代 ResultSet,这允许它根据业务逻辑进行过滤和跳过。此方法可能使用 RowMapper 类型来提取它想要保留的单行数据,或者它可以自己进行提取。
RowMapper 这用于将单行变成一些有效的,它可能只是一个列表。此方法使用 ResultSet#getWhatever(int)。
然后检查将 ResultSetExtractor 类型作为参数之一的 JdbcTemplate 方法。这可能是一个很好的例子:
http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html#query%28java.lang.String,%20java.lang.Object[] ,%20org.springframework.jdbc.core.ResultSetExtractor%29