public Pager<T> findByCount(String sqlId, Map<String, Object> params) { /** * 执行分页 */ 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); if(params==null) params = new HashMap<String, Object>(); params.put("pageSize", pageSize); params.put("pageOffset", pageOffset); params.put("sort", sort); params.put("order", order); List<T> datas = this.getSqlSession().selectList(sqlId, params); int totalRecord = this.getSqlSession().selectOne(sqlId+"_count",params); Pager<T> pages = new Pager<T>(datas); pages.setTotal(totalRecord); return pages; }
时间: 2024-03-07 18:52:45 浏览: 15
这段代码是用于实现分页查询的,其中使用了MyBatis的分页插件PageHelper。具体实现思路是:根据传入的参数Map和sqlId进行查询,查询结果为List<T>类型的数据,然后根据分页参数进行分页处理,最终将分页后的数据封装到Pager<T>对象中并返回。
代码中首先获取系统的分页参数(每页显示数量、当前页码、排序方式和排序字段),如果没有传入则使用默认值。然后根据当前页码和每页显示数量调用PageHelper.startPage()方法进行分页处理。接着将分页参数放入params中,最后执行查询和查询总记录数的操作,将结果封装到Pager<T>对象中并返回。
相关问题
public Pager<T> findByMap(String sqlId, Map<String, Object> params) { /** * 执行分页 */ 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, params); Pager<T> pages = new Pager<T>(datas); return pages; }
这段代码也是用于实现分页查询的,但与上一段代码不同的是,它没有查询总记录数。具体实现思路是:根据传入的参数Map和sqlId进行查询,查询结果为List<T>类型的数据,然后根据分页参数进行分页处理,最终将分页后的数据封装到Pager<T>对象中并返回。
代码中的实现与上一段代码类似,首先获取系统的分页参数,然后根据当前页码和每页显示数量调用PageHelper.startPage()方法进行分页处理。接着执行查询操作,将结果封装到Pager<T>对象中并返回。由于没有查询总记录数,因此返回的Pager<T>对象中的total字段为0。
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; }
这段代码也是用于实现分页查询的,与上面两段代码不同的是,它是根据传入的实体对象进行查询。具体实现思路是:根据传入的实体对象和sqlId进行查询,查询结果为List<T>类型的数据,然后根据分页参数进行分页处理,最终将分页后的数据封装到Pager<T>对象中并返回。
代码中的实现与上面两段代码类似,首先获取系统的分页参数,然后根据当前页码和每页显示数量调用PageHelper.startPage()方法进行分页处理。接着执行查询操作,将结果封装到Pager<T>对象中并返回。由于没有查询总记录数,因此返回的Pager<T>对象中的total字段为0。
需要注意的是,这种方式查询的时候,实体对象中的属性值必须与数据库表中的字段名对应,否则查询结果可能会有误。