分布式电商项目(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

原文地址:https://www.cnblogs.com/Cryptonym/p/9961059.html

时间: 2024-07-28 14:56:02

分布式电商项目(04)--商品列表查询及分页的相关文章

分布式电商项目(02)--后台管理系统SSM框架整合

前言:上一篇博客讲了此次分布式电商项目后台管理系统的工程的搭建,这一篇就讲一下SSM框架的整合 1.整合思路 下面说到的配置文件都需要放到manager-web工程下,因为此工程为war工程,而其它的工程都只是一个jar包,具体如下图所示 1.1 DAO层 mybatis整合spring,通过spring管理SqlSessionFactory.mapper代理对象.需要mybatis和spring的整合包. 整合内容 对应工程 Pojo mangaer-pojo Mapper映射文件 manga

16套java架构师,高并发,高可用,高性能,集群,大型分布式电商项目实战视频教程

16套Java架构师,集群,高可用,高可扩展,高性能,高并发,性能优化,设计模式,数据结构,虚拟机,微服务架构,日志分析,工作流,Jvm,Dubbo ,Spring boot,Spring cloud, Redis,ActiveMQ,Nginx,Mycat,Netty,Jvm,Mecached,Nosql,Spring,大型分布式项目实战视频教程 视频课程包含: 高级Java架构师包含:架构师,高并发,分布式,集群,高可用,高可扩展,高性能,设计模式,数据结构算法,虚拟机,微服务架构,日志分析,

36套精品Java高级课,架构课,java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,第三方支付,web安全,高并发,高性能,高可用,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,大型分布式电商项目实战视频教程

新年伊始,学习要趁早,点滴记录,学习就是进步! QQ:1225462853 视频课程包含: 36套Java精品高级课架构课包含:java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,架构设计,web安全,高并发,高性能,高可用,高可扩展,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,工作流,程序调优,负载均衡,Solr集群与应用,主从复制,中间件,全文检索,Spring boot,Spring cloud,Dubbo,Elasticsearch,Redis,ActiveMQ

企业级JAVA大型分布式电商项目实战高并发集群分布式系统架构

并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行. "高可用性"(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性. 一. 设计理念 空间换时间 多级缓存,静态化 客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回bo

007商城项目:商品列表查询-需求分析

我们之前已经整合了ssm框架并且调试已经好了,接下来我们实现商品列表的查询. 我们先进入到首页: 方法如下: 我们看到我们把所有的jsp页面都是放在: 这些页面都是放在WEB-IN下面的,也就是说这些页面都是需要通过经过Action才能获取的. 我们来写Action层的代码: 我们统一把Action层代码都写在 这个模块下面. 起名pageController.class: 代码如下: package com.taotao.controller; import org.springframewo

电商项目:商品秒杀系统个人理解

秒杀是电商平台的一种品牌推广.促销的一个高并发短时间的一个活动.可以提高用户体验度和提高品牌知名度,会在活动开始之前大力宣传,假如促销一百件商品,可能会吸引一万个用户同时在一个页面不断刷新,这里可以用freemarker生成静态页,通过ajax动态获取必需的数据,等待活动时间开始,但是如果只在静态页进行对按钮的限制,可能会出现有些用户修改电脑时间.前端js,导致出现提前抢购的情况.我们采用的解决方案是在后台也进,从页面去进行抢购要快得多,我们通过定时器,在活动开始的时候生成一个随机字符串组成的密

传智播客大型分布式电商项目-淘淘商城

课程目录及下载地址01.第一天(项目介绍,搭建maven工程)02.第二天(框架整合,后台系统搭建)03.第三天(实现商品添加)04.第四天(商品规格实现)05.第五天(前台工程搭建.首页商品类目显示)06.第六天(CMS系统)07.第七天(redis缓存)08.第八天(solr服务器搭建.搜索功能实现)09.第九天(商品详情页面实现)10.第十天(单点登录系统实现)11.第十一天(购物车+订单)12.第十二天(系统架构讲解.nginx)13.第十三天(生产环境搭建.系统部署)14.第十四天(项

Maven+CMS+Redis+Solr+Linux+Nginx+Springmvc+Mybatis+单点登录,大型分布(传智播客大型分布式电商项目-淘淘商城)

课程目录及下载地址01.第一天(项目介绍,搭建maven工程)02.第二天(框架整合,后台系统搭建)03.第三天(实现商品添加)04.第四天(商品规格实现)05.第五天(前台工程搭建.首页商品类目显示)06.第六天(CMS系统)07.第七天(redis缓存)08.第八天(solr服务器搭建.搜索功能实现)09.第九天(商品详情页面实现)10.第十天(单点登录系统实现)11.第十一天(购物车+订单)12.第十二天(系统架构讲解.nginx)13.第十三天(生产环境搭建.系统部署)14.第十四天(项

大型分布式电商项目---品优购

概述 这是一个综合性的B2B2C平台,类似京东商城.天猫商城.网站采用商家入驻的模式.该项目采用Spring+SpirngMVC+Mybatis框架搭建的maven工程,并采用分布式架构按功能将系统分为不同的子系统,将不同的子系统部署到不同的节点服务器独立运行.在各个系统之间采用dubbox+zookeeper进行通信,实现了基于SOA面向服务的架构,使得服务层与表现层分离,此项目为本人学习项目,为传智播客,最后一个商城实战项目,前前后后花了2个月左右,后面几天的内容暂时没做,因为电脑吃不消,完