今天写一个接口遇到了关于取到的数据分页问题
百度一圈最后选择了PreparedStatement的分页
贴代码
private List<Map<String,Object>> Pagination(String sql, int pageNo){
final String sqlBuilder = sql;
final int page_size = PaginationFinal.numberPageShow;
final int start = (pageNo-1)*page_size;
return jdbcTemplate.query(new PreparedStatementCreator(){
@Override
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
return con.prepareStatement(sqlBuilder, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
}
}, new ResultSetExtractor<List<Map<String,Object>>>() {
@Override
public List<Map<String,Object>> extractData(ResultSet resultSet) throws SQLException, DataAccessException {
if (start > 0 ) {
resultSet.absolute(start);
}
List<Map<String,Object>> list = Lists.newArrayListWithCapacity(page_size);
HashMap<String, Object> map;
int i = 1;
while (i <= page_size&&resultSet.next()) {
map = new HashMap<String, Object>();
map.put("zh_label",resultSet.getString("zh_label"));
map.put("project_no",resultSet.getString("project_no"));
map.put("state",resultSet.getString("states"));
map.put("progress",resultSet.getString("progress"));
i++;
list.add(map);
}
return list;
}
我做的是一个接口返回的是数据
结果: