Mybatis - PageHelper
Mybatis的一个插件,PageHelper,非常方便mybatis分页查询。详细请参见:PageHelper
使用方法:
- 引入分页插件
- 配置拦截器插件
在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
17public 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
4public 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;
}
}