使用 easyui 的 DataGrid 控件实现商品的分页查询,DataGrid 控件提交分页所需要的 page 和rows 参数,后台响应包含总记录数 total 和需要显示的商品对象的集合 rows 的 json 对象。

PageHelper 资源地址

https://github.com/pagehelper/Mybatis-PageHelper

PageHelper 实现原理

PageHelper 配置

mybatisConfig.xml

<!-- 配置分页插件 --><plugins><plugin interceptor="com.github.pagehelper.PageHelper"><!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库 --><property name="dialect" value="mysql" /></plugin></plugins>

ego-common 创建 PageResult

com.bjsxt.ego.beans.PageResult

package com.bjsxt.ego.beans;import java.io.Serializable;
import java.util.List;public class PageResult<T> implements Serializable {private List<T> rows;private Long tota;public PageResult(List<T> rows, Long tota) {this.rows = rows;this.tota = tota;}public PageResult(){}public List<T> getRows() {return rows;}public void setRows(List<T> rows) {this.rows = rows;}public Long getTota() {return tota;}public void setTota(Long tota) {this.tota = tota;}
}

创建 ItemService 接口

com.bjsxt.ego.rpc.service.ItemService

package com.bjsxt.ego.rpc.service;import com.bjsxt.ego.beans.EgoResult;
import com.bjsxt.ego.beans.PageResult;
import com.bjsxt.ego.rpc.pojo.TbItem;import java.util.List;public interface ItemService {/*** 实现商品的分页查询*/public PageResult<TbItem> selectItemList(Integer page,Integer rows);/*** 完成商品上下架的处理*/public EgoResult updataItemStatus(List<Long> itemIds,Boolean flag);public EgoResult deleteItem(List<Long> itemIds);}

创建 ItemServiceImpl 实现类

com.bjsxt.ego.rpc.service.impl.ItemServiceImpl

package com.bjsxt.ego.rpc.service.impl;import com.bjsxt.ego.beans.EgoResult;
import com.bjsxt.ego.beans.PageResult;
import com.bjsxt.ego.rpc.mapper.TbItemMapper;
import com.bjsxt.ego.rpc.pojo.TbItem;
import com.bjsxt.ego.rpc.pojo.TbItemExample;
import com.bjsxt.ego.rpc.service.ItemService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class ItemServiceImpl implements ItemService {@Autowiredprivate TbItemMapper tbItemMapper;@Overridepublic PageResult<TbItem> selectItemList(Integer page, Integer rows) {//执行分页操作Page ps = PageHelper.startPage(page, rows);TbItemExample tbItemExample=new TbItemExample();//执行数据库查询操作List<TbItem> list = tbItemMapper.selectByExample(tbItemExample);PageResult<TbItem> result=new PageResult<>();result.setRows(list);result.setTota(ps.getTotal());return result;}@Overridepublic EgoResult updataItemStatus(List<Long> itemIds, Boolean flag) {//创建TbItem对象TbItem item=new TbItem();if (flag){item.setStatus((byte) 1);}else {item.setStatus((byte) 2);}//产生动态where条件TbItemExample tbItemExample=new TbItemExample();TbItemExample.Criteria c =tbItemExample.createCriteria();c.andIdIn(itemIds);tbItemMapper.updateByExampleSelective(item,tbItemExample);return EgoResult.ok();}@Overridepublic EgoResult deleteItem(List<Long> itemIds) {//产生动态的where条件TbItemExample itemExample=new TbItemExample();TbItemExample.Criteria c = itemExample.createCriteria();c.andIdIn(itemIds);tbItemMapper.deleteByExample(itemExample);return EgoResult.ok();}
}

配置 applicationContext-dubbo.xml

applicationContext-dubbo.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"><!-- 添加服务提供者的标志 --><dubbo:application name="ego-rpc-provider" /><!-- 指定注册中心 --><dubbo:registry address="192.168.181.129:2181,192.168.181.129:2182,192.168.181.129:2183" protocol="zookeeper" /><!-- 指定当前项目发布dubbo服务的方式 --><!-- 指定服务发布的协议:dubbo协议 --><!-- 指定服务发布的端口:10000 --><dubbo:protocol name="dubbo" port="20000" /><!-- &lt;!&ndash; 发布dubbo服务 &ndash;&gt;--><dubbo:service interface="com.bjsxt.ego.rpc.service.ItemService" ref="itemServiceImpl"></dubbo:service><dubbo:service interface="com.bjsxt.ego.rpc.service.ItemCatService" ref="itemCatServiceImpl"></dubbo:service></beans>

启动 ego-rpc-service-impl 发布 RPC 服务

com.bjsxt.provider.test.ProviderTest

package com.bjsxt.provider.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;import java.io.IOException;public class ProviderTest {public static void main(String[] args) {ClassPathXmlApplicationContext ac=new ClassPathXmlApplicationContext("spring/applicationContext-dao.xml","spring/applicationContext-dubbo.xml","spring/applicationContext-service.xml","spring/applicationContext-tx.xml");ac.start();System.out.println("================完成!=================");//阻塞程序的运行try {System.in.read();} catch (IOException e) {e.printStackTrace();}ac.stop();}
}

商品分页查询 ego-manager-web 实现

配置 applicationContext-dubbo.xml

spring/applicationContext-dubbo.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"><!-- 添加服务消费者的标志 --><dubbo:application name="ego-manager-web-consumer"/><!-- 指定注册中心 --><dubbo:registry address="192.168.181.129:2181,192.168.181.129:2182,192.168.181.129:2183" protocol="zookeeper" /><!-- &lt;!&ndash; spring容器中存在一个远程服务的代理对象 &ndash;&gt;--><dubbo:reference interface="com.bjsxt.ego.rpc.service.ItemService" id="itemServiceProxy"></dubbo:reference><dubbo:reference interface="com.bjsxt.ego.rpc.service.ItemCatService" id="itemCatServiceProxy"></dubbo:reference></beans>

创建 ManagerItemService 接口

com.bjsxt.ego.manager.service.ManagerItemService

package com.bjsxt.ego.manager.service;import com.bjsxt.ego.beans.EgoResult;
import com.bjsxt.ego.beans.PageResult;
import com.bjsxt.ego.rpc.pojo.TbItem;public interface ManagerItemService {/*** 完成商品信息的分页查询* **/public PageResult<TbItem> selectItemListService(Integer page,Integer rows);/*** 完成商品上架处理* @param ids* @return*/public EgoResult reshlfItem(Long[] ids);/*** 完成商品下架处理* @param ids* @return*/public EgoResult instockItem(Long[] ids);/*** 完成商品的删除* @param ids* @return*/public EgoResult deleteItem(Long[] ids);}

创建 ManagerItemServiceImpl 实现类

com.bjsxt.ego.manager.service.impl.ManagerItemServiceImpl

package com.bjsxt.ego.manager.service.impl;import com.bjsxt.ego.beans.EgoResult;
import com.bjsxt.ego.beans.PageResult;
import com.bjsxt.ego.manager.service.ManagerItemService;
import com.bjsxt.ego.rpc.pojo.TbItem;
import com.bjsxt.ego.rpc.service.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.Arrays;
import java.util.List;@Service
public class ManagerItemServiceImpl implements ManagerItemService {@Autowiredprivate ItemService itemServiceProxy;@Overridepublic PageResult<TbItem> selectItemListService(Integer page, Integer rows) {PageResult<TbItem> pageResult = itemServiceProxy.selectItemList(page, rows);return pageResult;}@Overridepublic EgoResult reshlfItem(Long[] ids) {List<Long> itemIds = Arrays.asList(ids);return itemServiceProxy.updataItemStatus(itemIds,true);}@Overridepublic EgoResult instockItem(Long[] ids) {List<Long> itemIds = Arrays.asList(ids);return itemServiceProxy.updataItemStatus(itemIds,false);}@Overridepublic EgoResult deleteItem(Long[] ids) {List<Long> itemIds=Arrays.asList(ids);return itemServiceProxy.deleteItem(itemIds);}
}

创建 ItemController

com.bjsxt.ego.manager.controller.ItemController

package com.bjsxt.ego.manager.controller;import com.bjsxt.ego.beans.EgoResult;
import com.bjsxt.ego.beans.PageResult;
import com.bjsxt.ego.manager.service.ManagerItemService;
import com.bjsxt.ego.rpc.pojo.TbItem;
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class ItemController {@Autowiredprivate ManagerItemService managerItemService;/**** 处理商品信息分页查询的请求* **/@RequestMapping(value = "item/list",produces = MediaType.APPLICATION_JSON_VALUE+";charset=UTF-8")@ResponseBodypublic PageResult<TbItem> itemList(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "30") Integer rows){return managerItemService.selectItemListService(page,rows);}/***处理商品上架* @param ids* @return*/@RequestMapping(value = "item/reshelf")@ResponseBodypublic String reshelfItem(Long[] ids){EgoResult egoResult = managerItemService.reshlfItem(ids);String s = new Gson().toJson(egoResult);return s;}/***处理商品下架* @param ids* @return*/@RequestMapping(value = "item/instock")@ResponseBodypublic String instockItem(Long[] ids){EgoResult egoResult = managerItemService.instockItem(ids);String s = new Gson().toJson(egoResult);return s;}/***处理商品删除* @param ids* @return*/@RequestMapping(value = "item/delete")@ResponseBodypublic String deleteItem(Long[] ids){EgoResult egoResult = managerItemService.deleteItem(ids);String s = new Gson().toJson(egoResult);return s;}
}

发布 ego-manager-web 访问商品列表

商品分页查询 ego-prc 实现-easyui相关推荐

  1. 实战 Java 第10天:商品分页查询

    实战 Java 第10天:商品分页查询 前言 一.添加pagehelper相关依赖 二.在 ProductService 类中添加接口 三.在 ProductMapper 类中添加接口 四.增加 sq ...

  2. 【mybatis】在mybatis分页查询时,主表对关联表 一对多 分页查询怎么实现

    现在有这样一个需求: 1.积分商品分页查询 2.一个积分商品会有多张商品图片在商品图片表  1:n的关系 这样在积分商品分页查询的时候,想要顺便把每个积分商品对应的商品图片信息也带出来 实现如下: 1 ...

  3. 框架 day74 涛涛商城项目整合ssm,分页插件pagehelper,商品列表查询

    讲师:入云龙 1.  课程计划 1. SSM框架整合 2. mybatis逆向工程 3. 商品列表 4. 商品列表分页处理 2.  SSM框架整合 2.1.  后台系统所用的技术 框架:Spring ...

  4. (easyui datagrid+mvc+json)之asp.net分页查询

    最近在做分页查询的功能,在网上也翻看了不少,但是自己的吸收能力就差了好多,而且当时最大的想法就是,怎么就没有我想要的那种,既是easyui的,又要用mvc的架构,还要能够实现底层的分页传值,用.net ...

  5. easyui datatable ajax 加载数据,ASP.NET easyUI--datagrid 通过ajax请求ASP.NET后台数据的分页查询...

    js前台对datagrid的定义代码,如下 mygrid = $('#mytable').datagrid({ fit: true, //自动大小 height: 'auto', rownumbers ...

  6. MySQL分页查询商品订单列表

    MySQL分页查询商品订单列表 题目 简单表设计并且写出sql语句,购物订单系统里面"所有订单"功能,一个订单包含多个产品,一个产品也可能被不同的订单包含,请写出针对于产品名称搜索 ...

  7. 商城后台管理系统之普通查询_分页查询_商品的添加,单个删除,批量删除

    一.MVC开发模式和JavaEE经典三层结构 1.JSP开发模式一: jsp(接收请求,响应请求,展示数据)+javabean(处理业务逻辑) javaBean:可复用的java组件 -user -u ...

  8. Elasticsearch实现商品搜索(关键字查询 条件筛选 规格过滤 价格区间搜索 分页查询 排序查询 高亮查询)

    Elasticsearch实现商品搜索 商品搜索 1.根据关键字查询 2.条件筛选 2.1 品牌筛选 2.1.1 需求分析 2.1.2 代码实现 2.2 规格过滤 2.2.1 需求分析 2.2.2 代 ...

  9. 5.商品分类查询功能_商品品牌分页查询功能

    知识点总结 1.功能:查询全部一级分类商品: 分类表:tb_category 字段: id name parent_id(父级分类) is_parent(是否是一级分类) sort(排序指数,越小越靠 ...

  10. easyui分页查询为什么会有下拉框_6个针对MySQL大数据量分页查询优化的锦囊妙计...

    作者:大神养成记转载来源:http://sina.lt/gauW 方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M ...

最新文章

  1. 适定、超定和欠定方程的概念
  2. 提高开发效率之VS Code基础配置篇
  3. 从源码分析DEARGUI之add_radio_button
  4. php使用swoole的应用场景
  5. 20应用统计考研复试要点(part13)--应用多元分析
  6. 多表操作查询 一对一
  7. SpringBoot (14)---日志配置(logback)
  8. 执行对象cocos2d-x 2.x action动作整理集合
  9. d3.js——饼状图
  10. 探讨【IGE】的源代码【二】。
  11. 大篆汉字对照表_篆书隶书千字对照表(一)
  12. 音视频编码格式和封装格式的关系和区别是什么?
  13. Chromium OS 初体验
  14. android service layoutinflater,Android LayoutInflater.from().inflate()源码解析
  15. 抖音巨量百应怎么发福袋?四川鹰迪
  16. IDEA隐藏不想看见的文件
  17. 麦子学院demo(html+css)
  18. BCB中嵌入资源文件的研究
  19. 算法设计与分析 实验三 回溯法求解地图填色问题
  20. java long保留两位小数

热门文章

  1. 【中医学】9 方剂-4
  2. pt100热电阻计算公式C语言,PT100计算公式
  3. python求不规则图形面积_python计算不规则图形面积算法
  4. 刘汉国老师的3路单火智能开关
  5. win+ubuntu双系统卸载ubuntu
  6. 远程连接mscs下oracle,MSCS+FailSafe ORACLE数据库双机集群做HA小结
  7. pcr扩增的原理和步骤
  8. 所谓的1261考核法算不算是末尾淘汰?
  9. 我的2018OKR年终回顾与2019OKR初步规划
  10. 常见的自动化测试工具汇总