实现的效果:前端
点击“查询商品”以后-》java
咱们的前台用的是EasyUI框架。页面的数据显示规则是:sql
请求的参数:http://localhost:8080/item/list?page=1&rows=30 分页信息。(须要看官方的手册)数据库
返回值。Json数据。数据格式:json
Easyui中datagrid控件要求的数据格式为:前端框架
{total:”2”,rows:[{“id”:”1”,”name”,”张三”},{“id”:”2”,”name”,”李四”}]}app
数据库中的数据:框架
咱们从数据库中查出来数据:由于逆向工程,咱们已经包装成了Pojo。可是由于咱们要符合EasyUI的格式,因此咱们要从新设计一个pojo类。ide
这个pojo类里面要有两个属性:ui
total属性:查询到的结果的数量。
rows:帮咱们从数据库中查询到的数据包装进去。
咱们在taotao-common建立这个pojo类:
package com.taotao.common.pojo; import java.util.List; /** * * @author xiaoquan *这个类是为了从数据库查询出数据而设立的pojo类,咱们的前端框架用的是EasyUi框架咱们的数据返回到页面 *显示是有要求的,须要两个额外的属性。totol。而且把咱们的数据库里面查询到的数据集包装到rows里面 *因此咱们自定义这么一个pojo类。 * */ public class EUDataGridResult { public long total; public long getTotal() { return total; } public void setTotal(long total) { this.total = total; } public List<?> rows; public List<?> getRows() { return rows; } public void setRows(List<?> rows) { this.rows = rows; } }
DAO层:咱们仍是就用逆向工程生成的好了。
咱们想把查询出来的数据进行分页的话,咱们只能修改逆向工程生成的Mapper里面的sql语句,可是这样很麻烦,因此咱们就利用现有的插件。
这个插件对逆向工程生成的支持很差。因此用了培训班里面的修改版。
咱们如今写Service层:
@Override public EUDataGridResult getItemList(int page, int rows) { TbItemExample tbItemExample = new TbItemExample(); PageHelper.startPage(page, rows);//插件的使用 List<TbItem> list = itemMapper.selectByExample(tbItemExample); EUDataGridResult result = new EUDataGridResult(); result.setRows(list);//把查询出来的数据封装进咱们的新建的pojo类。 PageInfo<TbItem> pageInfo = new PageInfo<>(list);//设置总的数量 System.out.println(pageInfo.getTotal()); result.setTotal(pageInfo.getTotal());
return result; }
咱们如今写Action层:
@RequestMapping("/item/list") @ResponseBody//把查询出来的数据所有转化成json格式输出到页面上。 public EUDataGridResult getItemList(Integer page,Integer rows) { EUDataGridResult result = itemService.getItemList(page, rows); return result; }
调试:
数据能查出来,可是分页失败了。这里一次出来了100条,并且servie里面的
pageInfo.getTotal()就是0.不知道怎么办。解决不了。