Skip to content
Ben edited this page Apr 25, 2018 · 2 revisions

Q:分页插件只支持limit/offset方式?

由于limit并不是标准SQL,仅少数数据库支持该种方法(如MySQL),所以目前分页插件只支持在sql语句中以limit/offset的方式进行分页。 如果要在不支持limit的数据库中进行分页查询,则需要使用其他方法来进行分页查询。

方法1: RowBounds: 在mapper.java中的方法中传入RowBounds对象。

  1. 向Mapper方法传入rowBounds,mapper.xml中不需要任何配置,mybatis会自动拦截rowBonds进行分页操作
RowBounds rowBounds = new RowBounds(offset, pageSize);
public List<ProdProduct> findRecords(HashMap<String,Object> map,RowBounds rowBounds);

方法2: PageHelper

在调用查询方法之前调用。PageHelper只对紧跟着的第一个SQL语句起作用.

 Page<?> page = PageHelper.startPage(pageNum,pageSize);
 List<?> pagelist = selectByExample(example);

合并java文件是否必须在注释中添加@mbg.generated?

不是必须的。在合并java文件时,如果新生成的类中有同名方法/类名/字段,都会覆盖原有类中的。
但是如果不在注释中添加@mbg.generated,之前生成的代码就不会被删除,例如在删除过数据库中的字段后,新合并的代码将还会包含之前的字段。