springboot +jpa的技术框架,可以实现基于面向对象的orm,即不写sql语句即完成查询。
springboot框架的搭建这里不再赘述。
直接看代码:(通过jpa的Example实现条件分页查询)
@Autowired
private ItemDao itemDao;
public Page- getItemListByPage(Integer pageNum, Integer pageSize, String itemId) {
Item item = new Item();
item.setItemId(itemId);
ExampleMatcher matcher = ExampleMatcher.matching()
.withMatcher("itemId", ExampleMatcher.GenericPropertyMatchers.exact());
Example
- example = Example.of(item, matcher);
PageRequest pageRequest = PageRequest.of(pageNum-1, pageSize);
Page
- page = null;
if (StringUtils.isEmpty(itemId)) {
page = itemDao.findAll(pageRequest);
}else {
page = itemDao.findAll(example, pageRequest);
}
return page;
}
如上:
如果想要分页信息,需要实例化一个Pageable对象,传入需要分页的信息,类似于pageHelper.
需要条件查询的时候,就需要创建ExampleMatcher对象去进行匹配对象,因为在jpa框架中,数据库表中的一行数据就对象这一个对象。ExampleMatcher.GenericPropertyMatchers 可以进行包含匹配,和精确匹配。
实例化以上连个对象,再将该对象传入到JpaRepository接口中的findAll方法 中,即可完成对后台数据的条件分页查询,如果需要过滤多个参数,只需要将Example中的对象添加过滤字段以及ExampleMatcher书写对应的过滤规则即可。