springmvc mysql分页_springmvc + mybatis+mysql 分页

dao层:

Select * from 表名 limit 12,4

limit 后边的第一个参数是指从第几条开始也就是pageStart;

第二个参数是limit,也就是从pageStart位置往后读多少条数据。

limit 12,4 就是从第12条数据开始往后读4条数据,读取结果是 13,14,15,16 四条数据。

所以当前端传递参数时传递的参数 page =4 limit =10时 在sql中体现为 limit 30,10 。

因为我的请求参数都是从map中取的所以我的计算代码如下:

/** * 获取分页起始条数 * * @param map 传递的查询参数 * @return */

public static Map getPageMap(Map map) {

Integer limit = Integer.valueOf((String) map.get("limit"));

Integer page = Integer.valueOf((String) map.get("page"));

Integer pageStart = (page - 1) * limit;

// 起始开始和每次取的条数以int存进map

map.put("pageStart", pageStart);

map.put("limit", limit);

return map;

}

所以我sql如下:(service层这里不做展示)

resultMap="userListMap">

Select * from 表名 limit #{pageStart},#{limit}

因为分页前端要计算总页数所以前端需要总条数。所以又有了另外一个借口,用于计算总条数。dao层如下(service层很简单不在这里做展示。)

Select

count(*) from

[表名]

接下来就是返回给前端了。因为给前端的数据包含两部分,数据内容和总条数,所以需要一个包装类result。代码如下(其中的属性值可按照需要自行添加。)

/** * 用于封装分页返回结果 */

public class PagedResult {

private Object list;//数据

private long total;//总条数

public Object getList() {

return list;

}

public void setList(Object object) {

this.list = object;

}

public long getTotal() {

return total;

}

public void setTotal(long total) {

this.total = total;

}

}

到此controller 就可以给前端返回了,代码如下:

@RequestMapping(method = RequestMethod.GET, produces="application/json;charset=UTF-8")

@ResponseBody

public ResponseEntity> list(HttpServletRequest request){

Map queryMap = CommonUtil.getParameterMap(request);

PagedResult result=new PagedResult();

result.setList(userService.getList(queryMap));

result.setTotal(userService.getToolsCount());

return new ResponseEntity(result, HttpStatus.OK);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值