分页查询和分页缓存查询,List<Map<String, Object>>遍历和Map遍历
分页查询
String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = page * limit; sql = "select * from (select fulltable.*, ROWNUM RN from (" + sql + ") fulltable where ROWNUM <= " + end + ") where RN >= " + start;
分页缓存查询
private static List<Map<String, Object>> storageList; @PostConstruct//在需要自动启动的方法前加注释 @PostConstruct @Override public void refreshStorageMemory() { String sql = "select * from DM_STORAGE"; storageList = dmJdbcTemplate.queryForList(sql); } @Override public List<Map<String, Object>> selectStorage(Integer page, Integer limit, Map<String, Object> operator) { if (page != null && limit != null && limit > 0) { int start = (page - 1) * limit; int end = page * limit; if (end > storageList.size()) { end = storageList.size(); } return storageList.subList(start, end); } else { return storageList; } }
List<Map<,>>遍历取出Map
Map<String, Object> matAuxPlanRec; for (int i = 0; i < matAuxPlanRecList.size(); i++) { matAuxPlanRec = matAuxPlanRecList.get(i); }
Map的get()方法获取key对应的value:String UNIT_ = (String) matAuxPlanRec.get("UNIT_");
Map遍历:
for (Map.Entry<String, Object> entry : matAuxPlanRec .entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); }