實現的效果:
點擊“查詢商品”之后-》
我們的前台用的是EasyUI框架。頁面的數據顯示規則是:
請求的參數:http://localhost:8080/item/list?page=1&rows=30 分頁信息。(需要看官方的手冊)
返回值。Json數據。數據格式:
Easyui中datagrid控件要求的數據格式為:
{total:”2”,rows:[{“id”:”1”,”name”,”張三”},{“id”:”2”,”name”,”李四”}]}
數據庫中的數據:
我們從數據庫中查出來數據:因為逆向工程,我們已經包裝成了Pojo。但是因為我們要符合EasyUI的格式,所以我們要重新設計一個pojo類。
這個pojo類里面要有兩個屬性:
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層:我們還是就用逆向工程生成的好了。
分頁插件PageHelper
我們想把查詢出來的數據進行分頁的話,我們只能修改逆向工程生成的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.
不知道怎么辦。解決不了。