分布式电商项目(04)--商品列表查询及分页

Posted cryptonym

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式电商项目(04)--商品列表查询及分页相关的知识,希望对你有一定的参考价值。

前言:前面写了后天管理系统工程搭建以及框架的整合测试,今天写一下商品列表的分页查询

1 需求分析

前台使用easyui的分页工具,后台则使用mybatis分页插件pagehelper

技术分享图片

如上图所示,打开后台首页,点击查询商品,按下F12,可以看到easyui的分页界面会向controller发送两个数据page:1,rows:30

controller通过service层以及dao层查询到数据之后也需要将数据封装成easyui需要的格式,而easyui需要的数据格式如下

{
    total:"2",
    rows:[
            {"id":"1","name":"username1"},
            {"id":"2","name":"username2"}
         ]
}

对应现在的场景就是将数据封装成total:商品总数,rows:商品信息列表的格式

2 具体实现

2.1 封装通用的分页工具类

由于分页在后面肯定还会用到,现在在common工程下写一个easyui分页的工具类,具体的代码如下:

public class EUDataGridResult {

    private long total;
    private List<?> rows;
    public long getTotal() {
        return total;
    }
    public void setTotal(long total) {
        this.total = total;
    }
    public List<?> getRows() {
        return rows;
    }
    public void setRows(List<?> rows) {
        this.rows = rows;
    }
}

2.2 编写接口及其实现类

在service工程下编写service类及其实现类

ItemService的代码如下:

public interface ItemService {

    EUDataGridResult getItemList(Integer page, Integer rows);
   
}

ItemServiceImpl的代码如下:

@Service
public class ItemServiceImpl implements ItemService {

    @Autowired
    private TbItemMapper itemMapper;

    /**
     * 商品列表查询
     * @param page
     * @param rows
     * @return
     */
    @Override
    public EUDataGridResult getItemList(Integer page, Integer rows) {
        TbItemExample example =  new TbItemExample();
        PageHelper.startPage(page,rows);
        List<TbItem> list = itemMapper.selectByExample(example);
        EUDataGridResult result = new EUDataGridResult();
        result.setRows(list);
        PageInfo<TbItem> info = new PageInfo<>(list);
        result.setTotal(info.getTotal());
        return result;
    }

   

}

2.3 编写Controller

ItemController的代码如下:

package com.taotao.controller;

import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import com.taotao.pojo.EUDataGridResult;
import com.taotao.pojo.TaotaoResult;
import com.taotao.pojo.TbItem;

import com.taotao.service.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Controller
public class ItemController {

    @Autowired
    private ItemService itemService;


    /**
     * 商品列表查询
     * @param page
     * @param rows
     * @return
     */
    @RequestMapping("/item/list")
    @ResponseBody
    public EUDataGridResult getItemList(Integer page, Integer rows ){
        EUDataGridResult result = itemService.getItemList(page, rows);
        return result;
    }


}

此处要注意,RequestMapping中的值一定要与jsp页面中的请求的值是一致的

3 测试

运行项目,点击查询商品可以查询出商品列表即为成功,即出现如下图所示的界面:

技术分享图片

4 相关文件

下面提供一些相关的资源下载,包括后台管理系统的静态资源,博主使用的本地仓库等

链接:https://pan.baidu.com/s/1mWDQznk0N5um_YMB7Greiw

提取码:1gh3

 



以上是关于分布式电商项目(04)--商品列表查询及分页的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis Plus一对多联表查询及分页解决方案

008商城项目:商品列表查询-查出商品并且分页

linq 大数据 sql 查询及分页优化

MyBatis03:ResultMap及分页

淘淘商城2

thinkphp两表,多表联合查询及分页的连贯操作写法