利用mybatis的分页插件实现商品列表的显示
2016-12-01 16:22
411 查看
分析思路:
当我们点击查询商品的时候,会出现商品的列表,并按上下页可以实现分页的查询的功能。
首先首先我们先找到商品查询商品的按钮在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;
}
这里用到了分页插件工具,具体见前一篇文章。
这是列表的显示功能分析。
当我们点击查询商品的时候,会出现商品的列表,并按上下页可以实现分页的查询的功能。
首先首先我们先找到商品查询商品的按钮在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;
}
这里用到了分页插件工具,具体见前一篇文章。
这是列表的显示功能分析。
相关文章推荐
- 利用SpringMvc和MyBatis实现员工列表显示页面
- 商城项目实战14:MyBatis分页插件(PageHelper)的使用以及商品列表展示
- 淘淘商城系列——MyBatis分页插件(PageHelper)的使用以及商品列表展示
- (转)淘淘商城系列——MyBatis分页插件(PageHelper)的使用以及商品列表展示
- 如何在ecshop中实现后台商品列表显示会员等级价格的解决办法
- ASP.NET网站权限设计实现(三)——套用JQuery EasyUI列表显示数据、分页、查询
- 利用ThinkPHP实现分页显示
- 利用Repeater控件实现数据分页显示
- jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
- 【Struts2】用Struts2实现列表显示和分页功能
- 05-php雇员管理系统-实现显示雇员信息列表分页
- 利用VBS实现 显示服务列表
- WordPress 非插件实现文章列表分页导航
- 使用pager-taglib插件实现SSH框架的分页显示功能,只翻页三出错
- 利用Jquery中的pagination插件实现无刷新的分页
- 利用ASP实现Oracle数据记录的分页显示
- 利用Mybatis的动态SQL实现物理分页
- 利用mybatis generator插件生成基于分页语句及分页解决方案
- WordPress中无需插件实现文章列表分页
- oracle利用行内视图实现分页显示