分析思路:

当我们点击查询商品的时候,会出现商品的列表,并按上下页可以实现分页的查询的功能。

首先首先我们先找到商品查询商品的按钮在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的分页插件实现商品列表的显示的更多相关文章

  1. SpringBoot集成MyBatis的分页插件 PageHelper

    首先说说MyBatis框架的PageHelper插件吧,它是一个非常好用的分页插件,通常我们的项目中如果集成了MyBatis的话,几乎都会用到它,因为分页的业务逻辑说复杂也不复杂,但是有插件我们何乐而 ...

  2. Mybatis的分页插件PageHelper

    Mybatis的分页插件PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper  文档地址:http://git.oschina. ...

  3. Mybatis 的分页插件PageHelper-4.1.1的使用

    Mybatis 的分页插件 PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper  文档地址:http://git.oschin ...

  4. Mybatis之分页插件pagehelper的简单使用

    最近从家里回来之后一直在想着减肥的事情,一个月都没更新博客了,今天下午没睡午觉就想着把mybatis的分页插件了解一下,由于上个月重新恢复了系统,之前创建的项目都没了,又重新创建了一个项目. 一.创建 ...

  5. spring boot(二)整合mybatis plus+ 分页插件 + 代码生成

    先创建spring boot项目,不知道怎么创建项目的 可以看我上一篇文章 用到的环境 JDK8 .maven.lombok.mysql 5.7 swagger 是为了方便接口测试 一.Spring ...

  6. 商品列表中显示类别名称而不是类别ID

    商品表中的字段包裹商品信息和categoryid 若要在商品列表中显示出categoryname,有两种做法: 第一种做法: 拿到categoryid后再跟数据库连接一下,然后拿出categoryna ...

  7. Mybatis的分页插件com.github.pagehelper

    1. 需要引入PageHelper的jar包 如果没有使用maven,那直接把jar包导入到lib文件夹下即可,这个PageHelper插件在github上有开源, 地址为:https://githu ...

  8. mybatis的分页插件使用方法

    1.下载所需要的jar包,如果使用maven可以在maven中添加依赖: 插件的实现原理: 如果你想使用本项目的jar包而不是直接引入类,你可以在这里下载各个版本的jar包(点击Download下的j ...

  9. mybatis pagehelper分页插件使用

    使用过mybatis的人都知道,mybatis本身就很小且简单,sql写在xml里,统一管理和优化.缺点当然也有,比如我们使用过程中,要使用到分页,如果用最原始的方式的话,1.查询分页数据,2.获取分 ...

随机推荐

  1. [HDOJ5442]Favorite Donut(最大表示法)

    嗯……就是最小表示法改一下…… 这题就是把S串当作两个判断同构的串,然后就搞出最大的表示了 然后在反向再做一次 O(n)求最大表示,O(n)判断正反谁大

  2. 关于document.getElement获取元素返回值的问题

    获取网页元素有很多种方法,如下: document.all[];返回HTMLElement对象 document.all.tags[];返回NodeList对象,类似数组 document.getEl ...

  3. Centos|RHEL7以前解决网卡eth0相关问题

    网络-网络-有网才有络络,哈哈!学习在于不断记录,问题记录多了就成大牛了.当大牛达到一定层次,都会回馈社会.研发推出新的东东! CentOS找不到ifcfg-eth0解决方法 问题描述: ifconf ...

  4. Ubuntu安装出现左上角光标一直闪解决方式

    Ubuntu安装出现左上角光标一直闪解决方式: 01下载ubunu http://cn.ubuntu.com/download/ 02.软碟通 http://pan.baidu.com/s/1qY8O ...

  5. Rest API 开发 学习笔记(转)

    Rest API 开发 学习笔记 概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着 ...

  6. background-image 和 img

    一:解决div里面的img图像宽度不变,高度不变!   超出div部分设置隐藏! 图片:1920x526 div容器: 1423x526 1. background-image:样式实现 img: 标 ...

  7. model 的验证

    Ext.onReady(function(){ Ext.define('User', { extend: 'Ext.data.Model', fields: [ { name: 'name', typ ...

  8. svn 的备份还原

    备份脚本如下: #!/bin/bash ############################################################################### ...

  9. ScrollView内部元素如何做到fill_parent 或者 match_parent?

    转  : http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0704/1629.html ScrollView滚动视图是指当拥有很多 ...

  10. Dubbo_创建Dubbo服务并在ZooKeeper注册,然后通过Jar包执行

    一.安装ZooKeeper(略) 二.创建Dubbo服务  1.DemoService 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...