当要展示的表按时间取时,即一天一张表或者一个月一张表时,需要在findPager()方法里判断是否存在要展示的这张表,如果不做判断而数据库里又没有这张表,会报404的错。 eg: 修改BaseTemplateDaoImpl.java中的findPager()方法
String querysql = "SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'itvsys' and TABLE_NAME='"+tableName+"'"; int tableCount = jdbcTemplate.queryForInt(querysql); int totalCount = 0; if(tableCount>0) { totalCount = jdbcTemplate.queryForInt("select count(*) from " + tableName + where); String order = ""; if (StringUtils.isNotEmpty(pager.getOrderBy()) && pager.getOrder() != null) { order = " order by " + pager.getOrderBy() + " " + pager.getOrder(); } String sql = "select * from " + tableName + where + order + " limit " + (pager.getPageNumber() - 1) * pager.getPageSize() + "," + pager.getPageSize(); // pager.setResult(jdbcTemplate.queryForList(sql)); pager.setResult(jdbcTemplate.query(sql, null, null, new RowMapper() { @Override public Object mapRow(ResultSet rs, int rowNum) throws SQLException { T t = null; try { t = entityClass.newInstance(); Field[] fields = entityClass.getDeclaredFields(); for (Field field : fields) { if (field.getName().equals("serialVersionUID")) { continue; } ReflectionUtil.setFieldValue(t, field.getName(), rs.getObject(field.getName())); } } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } return t; } })); }else { try { T t = entityClass.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } pager.setResult(new ArrayList<T>()); }tips: 判断数据库里是否存在XX表的sql语句:
String querysql = "SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'itvsys' and TABLE_NAME='"+tableName+"'";