SSM框架下的分页查询显示
2017-02-27 16:42
232 查看
本次实例使用的是SSM框架,但是分页的原理都是一样的,所以便以这个框架下的分页方法为例。
首先:
分页查询时,在数据库(MySQL)中需要使用limit ?,?进行分页,2个参数分别为当前页码数,当前页面显示的条数,除此之外,我们还需要知道总记录数。
UserMapper.xml
接下来编写dao层的接口
因为传入的参数里包含当前页码数和当前页面显示条数两个参数,所以这里使用map来存放。
UserDao.java
Service层的接口以及他的实现类ServiceImpl
在service层的时候在一个实现方法里面调用dao层的两个方法。
UserService.java
UserServiceImpl.java
Controller层的实现
这里的Controller继承了BaseController里面的方法,
BaseController.java
UserController.java
以上就是分页查询的完整后台代码,至于前台的分页按钮,网上有较多现成的代码,这里就不做展示了。
首先:
分页查询时,在数据库(MySQL)中需要使用limit ?,?进行分页,2个参数分别为当前页码数,当前页面显示的条数,除此之外,我们还需要知道总记录数。
UserMapper.xml
<!--查询所有用户(分页)--> <select id="findByPage" parameterType="java.util.Map" resultType="java.util.Map"> SELECT <include refid="Base_Column_List"/> from user <if test="pageIndex >= 0 and pageSize > 0"> limit #{pageIndex},#{pageSize} </if> </select>
<!--取得记录总数--> <select id="getCount" parameterType="java.util.Map" resultType="java.lang.Integer"> SELECT count(1) as count from user </select>
接下来编写dao层的接口
因为传入的参数里包含当前页码数和当前页面显示条数两个参数,所以这里使用map来存放。
UserDao.java
//分页查询所有数据 List<Map<String,Object>> findByPage(Map<String,Object> map); //获得所有记录数 int getCount(Map<String,Object> map);
Service层的接口以及他的实现类ServiceImpl
在service层的时候在一个实现方法里面调用dao层的两个方法。
UserService.java
//分页查询 PageInfo<List<Map<String,Object>>> findByPage(Map<String,Object> params);
UserServiceImpl.java
@Override public PageInfo<List<Map<String,Object>>> findByPage(Map<String, Object> params) { PageInfo pageInfo = new PageInfo<>(); pageInfo.setPageSize((Integer)params.get("pageSize")); //获取总记录数 pageInfo.setTotalCount(userMapper.getCount(params)); pageInfo.setPageCount(pageInfo.getPageCount(pageInfo.getTotalCount(),pageInfo.getPageSize())); pageInfo.setPageIndex((int)params.get("pageIndex")); params.put("pageInfo",pageInfo); //获取查询到的结果集 List<Map<String,Object>> list = userMapper.findByPage(params); if(list.size()>0){ pageInfo.setResults(list); }else{ pageInfo.setResults(null); } return pageInfo; }
Controller层的实现
这里的Controller继承了BaseController里面的方法,
BaseController.java
@RequestMapping(value = "list",method = RequestMethod.GET, produces = "application/json; charset=utf-8") @ResponseBody public String list(T params,HttpServletRequest request,HttpServletResponse response) { String json=""; String temp1 = request.getParameter("pageIndex"); String temp2 = request.getParameter("pageSize"); try { int pageSize = temp2 == null ? ConstantParams.PAGE_SIZE : Integer.parseInt(temp2); int pageIndex = temp1 == null ? (ConstantParams.PAGE_INDEX - 1) * pageSize : (Integer.parseInt(temp1) - 1) * pageSize; PageInfo<E> page = findPage(params,pageSize,pageIndex,request); ObjectMapper mapper = new ObjectMapper(); json = mapper.writeValueAsString(page); } catch (Exception e) { e.printStackTrace(); } return json; } //查询分页 PageInfo<List<Map<String,Object>>> findByPage(Map<String,Object> params);
UserController.java
@Override protected PageInfo<List<Map<String,Object>>> findPage(User user, int pageSize, int pageIndex,HttpServletRequest request) { Map<String,Object> map = BeanConvertUtils.beanConvertMap(user); map.put("pageIndex",pageIndex); map.put("pageSize",pageSize); PageInfo<List<Map<String,Object>>> pageInfo = userService.findByPage(map); return pageInfo; }
以上就是分页查询的完整后台代码,至于前台的分页按钮,网上有较多现成的代码,这里就不做展示了。
相关文章推荐
- 【ssm个人博客项目实战08】博客的分页显示以及模糊查询,删除。
- ssm框架数据库取数据在前台分页显示
- SSM框架 用ajax实现模糊查询分页和列表
- SSM框架不用实体类,查询单个对象返回Map,多条记录返回list<Map>,及分页
- 基于Oracle数据库,用SSM框架和easyUI实现分页查询操作
- jeesite框架学习——对查询结果为Map的集合进行分页显示
- 框架 day74 涛涛商城项目整合ssm,分页插件pagehelper,商品列表查询
- SSM框架中集成TKMybatis+PageHelper实现高效查询和分页
- SSM框架 Mybatis联合查询 多表查询 分页
- ssm框架 里面查询列表,显示出来有字段漏掉(或者说少显示)
- ssm框架-简单的分页查询
- ssm框架查询数据并实现分页功能示例
- SSM框架jsp页面俩个参数作为查询条件查值显示在页面上
- Tp框架查询分页显示与全部查询出来显示运行时间快慢有区别吗?
- SSI框架---实现查询结果分页显示
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除、导出、突出显示等常见应用实现
- 使用该JavaBean可以将数据在JSP页面中以表格的形式显示出来,并具有动态排序、动态生成查询、自动分页功能
- ADODB数据分页查询提高数据显示速度
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除、导出、突出显示等常见应用实现
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除、导出、突出显示等常见应用实现(cs)