Java项目实战 - 商品列表展示:with PageHelper

Mybatis - PageHelper

Mybatis的一个插件,PageHelper,非常方便mybatis分页查询。详细请参见:PageHelper

使用方法:

  1. 引入分页插件
  2. 配置拦截器插件
    在SqlMapConfig.xml中配置插件。
    1
    2
    3
    4
    5
    6
    7
    <!-- 配置分页插件 -->
    <plugins>
    <plugin interceptor="com.github.pagehelper.PageHelper">
    <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
    <property name="dialect" value="mysql"/>
    </plugin>
    </plugins>

Dao

逆向工程已经实现了Mapper,不需要再做修改。

Service

接收分页参数,一个是page一个是rows。
调用dao查询商品列表,返回一个EasyUIDataGrid支持的数据格式的商品列表。
pojo:
把它放到izheyi-manager-common里,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class EasyUiDataGridResult {

private long total;
private List<?> rows;
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List<?> getRows() {
return rows;
}
public void setRows(List<?> rows) {
this.rows = rows;
}
}

接口类:

1
2
3
4
public interface ItemService {

EasyUiDataGridResult getItemList(int page, int rows);
}

实现类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@Service
public class ItemServiceImpl implements ItemService {

@Autowired
private TbItemMapper itemMapper;

@Override
public EasyUiDataGridResult getItemList(int page, int rows) {
//Search
TbItemExample example = new TbItemExample();
PageHelper.startPage(page, rows);//分页
List<TbItem> list = itemMapper.selectByExample(example);

//创建返回对象
EasyUiDataGridResult result = new EasyUiDataGridResult();
result.setRows(list);

//总条数
PageInfo<TbItem> pageInfo = new PageInfo<>(list);
result.setTotal(pageInfo.getTotal());

return result;
}
}

Controller

接收页面传递过来的参数page、rows。

1
2
3
4
5
6
7
8
9
10
11
12
13
@Controller
public class ItemController {

@Autowired
private ItemService itemService;

@RequestMapping("/item/list")
@ResponseBody
public EasyUiDataGridResult getItemList(int page, int rows){
EasyUiDataGridResult tbItem = itemService.getItemList(page, rows);
return tbItem;
}
}

运行结果

唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!