public Pager<T> findByEntity(String sqlId, T entity) { /** * 执行分页 */ Integer pageSize = SystemContext.getPageSize(); Integer pageOffset = SystemContext.getPageOffset(); if(pageOffset==null||pageOffset<0) pageOffset = 0; if(pageSize==null||pageSize<0) pageSize = 15; String order = SystemContext.getOrder(); String sort = SystemContext.getSort(); Integer pageNum = null; if(pageOffset == 0){ pageNum = 1; }else{ pageNum = pageOffset/pageSize+1; } PageHelper.startPage(pageNum, pageSize); List<T> datas = this.getSqlSession().selectList(sqlId, entity); Pager<T> pages = new Pager<T>(datas); return pages; }
时间: 2024-03-07 18:52:42 浏览: 47
这段代码也是用于实现分页查询的,与上面两段代码不同的是,它是根据传入的实体对象进行查询。具体实现思路是:根据传入的实体对象和sqlId进行查询,查询结果为List<T>类型的数据,然后根据分页参数进行分页处理,最终将分页后的数据封装到Pager<T>对象中并返回。
代码中的实现与上面两段代码类似,首先获取系统的分页参数,然后根据当前页码和每页显示数量调用PageHelper.startPage()方法进行分页处理。接着执行查询操作,将结果封装到Pager<T>对象中并返回。由于没有查询总记录数,因此返回的Pager<T>对象中的total字段为0。
需要注意的是,这种方式查询的时候,实体对象中的属性值必须与数据库表中的字段名对应,否则查询结果可能会有误。
阅读全文