實現的效果:前端
點擊「查詢商品」以後-》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.不知道怎麼辦。解決不了。