Jdbc标准是否可以通过jdbcTemplate.query
和offset
按limit
过滤结果回报?
还有一种简单的方法可以将ResultSet
(由过滤后的查询返回,如上所述)转换为List<Map<String,String>>
结果吗? List
是Map
中存储行值的行?行名称是地图键,行值是地图值。
或者有一种标准方法可以将行排除在ResultSet
之外?
答案 0 :(得分:0)
看一下JdbcTemplate#setMaxRows(int)
这应该应用LIMIT / TOP。
-
我认为OFFSET的定义不是很明确,你可能需要在相关的SQL方言中将其转换为SQL语句。
-
要过滤JDBC驱动程序返回的行并可能构建为Java用户定义的对象类型,请查看ResultSetExtractor和RowMapper。
ResultSetExtractor这用于使用ResultSet#next()迭代ResultSet,这允许它根据业务逻辑进行过滤和跳过。此方法可能会使用RowMapper类型来提取它想要保留的单行数据,或者它可以自行进行提取。
RowMapper这用于将单行变为有效,它可能只是一个List。此方法使用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。对象[],%20org.springframework.jdbc.core.ResultSetExtractor%29