1
回答
Spring的JdbcTemplate .query(sql, Object[], ResultSe
【腾讯云】校园拼团福利,1核2G服务器10元/月!>>>   

ResultSetExtractor rse =  new ResultSetExtractor() {
 			public Object extractData(ResultSet rs) throws SQLException,DataAccessException {
  				final List<E> pageItems = page.getPageItems();
 				int currentRow = 0;
 				if(pageSize < 0){
 					while (rs.next()) {
  	 					pageItems.add(rowMapper.mapRow(rs, currentRow));
  	 				}
 				}else{
 					while (rs.next() && currentRow < startRow + pageSize) {
 	 					if (currentRow >= startRow) {
 	 						pageItems.add(rowMapper.mapRow(rs, currentRow));
 	 					}
 	 					currentRow++;
 	 				}
 				}
 				
 				return page;
 			}
 		};
 		
 		long s = System.currentTimeMillis();
 		System.out.println("==>>开始查询分页"+System.currentTimeMillis());
 		jt.query(sqlFetchRows, params,rse);
               System.out.println("==>>结束查询分页"+System.currentTimeMillis() + ":"+(System.currentTimeMillis()-s));

当数据库的查询表记录超过10万时,此查询方法超级慢~~~~查询表加上索引时,基本上查询维持在3秒左右,一旦查询没用到索引,就挂在那儿,查不出来了~~~

 

举报
黄平俊
发帖于8年前 1回/1K+阅
顶部