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; }
时间: 2024-03-07 07:53:20 浏览: 159
这是一个Java语言中的方法,主要用于执行基于Mybatis框架的分页查询操作。其中,sqlId是Mybatis映射文件中定义的查询语句的ID,params是一个Map类型的参数列表,用于传递查询条件。该方法中使用了PageHelper类来实现分页功能,其中通过SystemContext类获取每页显示的记录数、当前页码、排序方式等信息,然后调用PageHelper.startPage()方法实现分页。最后调用getSqlSession().selectList()方法查询符合条件的记录列表,并将结果封装到Pager对象中返回。Pager对象是一个封装了分页查询结果的类,其中包含了查询出的记录列表、总记录数、总页数等信息。该方法通常被用于在Web应用中进行分页查询操作。
相关问题
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> 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; }
这段代码是用于实现分页查询的,其中使用了MyBatis的分页插件PageHelper。具体实现思路是:根据传入的参数Map和sqlId进行查询,查询结果为List<T>类型的数据,然后根据分页参数进行分页处理,最终将分页后的数据封装到Pager<T>对象中并返回。
代码中首先获取系统的分页参数(每页显示数量、当前页码、排序方式和排序字段),如果没有传入则使用默认值。然后根据当前页码和每页显示数量调用PageHelper.startPage()方法进行分页处理。接着将分页参数放入params中,最后执行查询和查询总记录数的操作,将结果封装到Pager<T>对象中并返回。
阅读全文