您的位置:首页 > 其它

利用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;
}

这里用到了分页插件工具,具体见前一篇文章。

这是列表的显示功能分析。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: