利用mybatis的分页插件实现商品列表的显示
分析思路:
当我们点击查询商品的时候,会出现商品的列表,并按上下页可以实现分页的查询的功能。

首先首先我们先找到商品查询商品的按钮在jsp的那个页面,即首页index.jsp

这里有个url即显示商品页面的l链接:
找到item-list.jsp页面:

这里有个跳转的url即/item/list
通过此处我们可以利用@RequestMapping注解实现页面的跳转
下面我们来分析下编码的实现:
(1)第一步:考虑是否有参数传入,考虑是否有返回值。
是否有参数传入:
查询商品列表,我们是查询所有的商品,所以这里不根据具体的id来查询,是无条件查询。即显示所有商品。
在mybatis中采用了分页查询的原理,而分页查询默认的是由参数的分页,即page和rows,所以这里需要两个参数。即page和rows。
是否有返回值:
这里查询商品,返回值肯定是商品的列表,即返回的pojo对象是商品
而这里页面采用的easyui的datagrid空间显示商品的列表:返回值有固定的形式的json数据格式:
{total:"2",rows:[{"id""1","name""张三"}{"id""2","name""张四"}]}的这种格式。
json的返回数据,我们一般采用封装的形式将数据封装,可以看到这里的格式我们创建一个pojo对象,用来接收返回值的数据:
这个pojo对象有两个属性:一个total,一个rows(rows是存放的list集合)
public class EUDataGridResult {
private int total;
private List<?> rows;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public List<?> getRows() {
return rows;
}
public void setRows(List<?> rows) {
this.rows = rows;
}
}
用来装返回值。
下一步的工作就是编码的实现了。
(2)考虑controller、service、dao(mapper)层的业务逻辑实现。
dao层是逆向工程生成的,我们只需要调用即可。
controller层的实现:
这一层主要是用来实现页面的跳转链接,接收参数,调用service,返回结果。
public class ItemController {
@Autowired
private ItemService itemService;
//返回商品查询信息,不要忘记是json格式的数据
@RequestMapping("item/list")
@ResponseBody
public EUDataGridResult getItemList(Integer page,Integer rows){
EUDataGridResult result=itemService.getItemList(page, rows);
return result;
}
service层的实现:
接收controller层传递过来的参数,调用mapper层;
@Override
public EUDataGridResult getItemList(int page, int rows) {
TbItemExample example=new TbItemExample();
//因为没有查询条件,所以不用criteria,直接查询
//开始分页
PageHelper.startPage(page, rows);
List<TbItem> list=itemMapper.selectByExample(example);
//返回一个pojo对象
EUDataGridResult result=new EUDataGridResult();
result.setRows(list);
//取记录的总条数
PageInfo<TbItem> pageInfo=new PageInfo<>(list);
result.setTotal((int) pageInfo.getTotal());
return result;
}
这里用到了分页插件工具,具体见前一篇文章。
这是列表的显示功能分析。
利用mybatis的分页插件实现商品列表的显示的更多相关文章
- SpringBoot集成MyBatis的分页插件 PageHelper
首先说说MyBatis框架的PageHelper插件吧,它是一个非常好用的分页插件,通常我们的项目中如果集成了MyBatis的话,几乎都会用到它,因为分页的业务逻辑说复杂也不复杂,但是有插件我们何乐而 ...
- Mybatis的分页插件PageHelper
Mybatis的分页插件PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper 文档地址:http://git.oschina. ...
- Mybatis 的分页插件PageHelper-4.1.1的使用
Mybatis 的分页插件 PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper 文档地址:http://git.oschin ...
- Mybatis之分页插件pagehelper的简单使用
最近从家里回来之后一直在想着减肥的事情,一个月都没更新博客了,今天下午没睡午觉就想着把mybatis的分页插件了解一下,由于上个月重新恢复了系统,之前创建的项目都没了,又重新创建了一个项目. 一.创建 ...
- spring boot(二)整合mybatis plus+ 分页插件 + 代码生成
先创建spring boot项目,不知道怎么创建项目的 可以看我上一篇文章 用到的环境 JDK8 .maven.lombok.mysql 5.7 swagger 是为了方便接口测试 一.Spring ...
- 商品列表中显示类别名称而不是类别ID
商品表中的字段包裹商品信息和categoryid 若要在商品列表中显示出categoryname,有两种做法: 第一种做法: 拿到categoryid后再跟数据库连接一下,然后拿出categoryna ...
- Mybatis的分页插件com.github.pagehelper
1. 需要引入PageHelper的jar包 如果没有使用maven,那直接把jar包导入到lib文件夹下即可,这个PageHelper插件在github上有开源, 地址为:https://githu ...
- mybatis的分页插件使用方法
1.下载所需要的jar包,如果使用maven可以在maven中添加依赖: 插件的实现原理: 如果你想使用本项目的jar包而不是直接引入类,你可以在这里下载各个版本的jar包(点击Download下的j ...
- mybatis pagehelper分页插件使用
使用过mybatis的人都知道,mybatis本身就很小且简单,sql写在xml里,统一管理和优化.缺点当然也有,比如我们使用过程中,要使用到分页,如果用最原始的方式的话,1.查询分页数据,2.获取分 ...
随机推荐
- 学习Google Protocol buffer之概述
XML这种属于非常强大的一种格式,能存储任何你想存的数据,而且编辑起来还是比较方便的.致命的缺陷在于比较庞大,在某些情况下,序列化和解析都会成为瓶颈.这种对于实时性很强的应用来说,就不太适合了,想象下 ...
- 基于FPGA的电压表与串口通信(下)
实验操作 上电 接入5V电源,用配套的线,USB那端接电脑即可: 电源开关 按下电源开关 接串口线 接下载线 现在电脑装串口线驱动 R340qd.zip 双击进行安装 设置串口调试助手 Com1要根据 ...
- Recommending branded products from social media -RecSys 2013-20160422
1.Information publication:RecSys 2013 author:zhengyong zhang 2.What 是对上一篇论文的拓展:利用社交媒体中用户信息 对用户购买的类别排 ...
- 34-nl 简明笔记
为文本文件添加行号 nl [options] files 参数 files是nl需要为其添加行号的文本文件路径名,如果有多个文件,则nl会把多个文件合在一起编号,并输出到标准输出上 选项 -b ...
- java设计优化--单例模式
单例模式是一种对象创建模式,确保系统中一个类只有一个实例. 在java语言中,这样做有两大好处: 1.对于频繁使用的对象,可以省略创建对象所话费的时间: 2.由于new操作的次数减少,对于系统内存的使 ...
- mysql union和union all的区别
union 对两个结果集进行并集操作,重复数据只显示一次 Union All,对两个结果集进行并集操作,重复数据全部显示 工具/原料 mysql 数据库 方法/步骤 student表数据 使用 ...
- 原 JQuery监听页面滚动总结
1.当前滚动的地方的窗口顶端到整个页面顶端的距离: var winPos = $(window).scrollTop(); 2.获取指定元素的页面位置: $(val).offset().top; 3. ...
- 【POJ 3177】Redundant Paths(边双连通分量)
求出每个边双连通分量缩点后的度,度为1的点即叶子节点.原图加上(leaf+1)/2条边即可变成双连通图. #include <cstdio> #include <cstring> ...
- Redis集合-Set
sadd 向一个Set中添加数据 127.0.0.1:6379> sadd set01 1 1 2 2 3 3 (integer) 3127.0.0.1:6379> SMEMBERS se ...
- 【BZOJ-4690】Never Wait For Weights 带权并查集
4690: Never Wait for Weights Time Limit: 15 Sec Memory Limit: 256 MBSubmit: 88 Solved: 41[Submit][ ...