介绍
逻辑分页
: 逻辑分页指的是将数据库中所有数据全部取出,然后通过Java代码控制分页逻辑。
物理分页
: 物理分页指的是在SQL查询过程中实现分页,依托与不同的数据库厂商,实现也会不同。
正是由于不同的数据库厂商所提供的分页不同,例如ORACLE是子查询实现,MySQL是limit语句实现,所以在Mybatis中,默认的实现是基于逻辑分页的。但是Mybatis支持拦截器(Interceptor),所以,我们可以根据不同的数据库,定制自己的数据库物理分页逻辑。
逻辑分页
逻辑分页的实现很简单,只需要在查询的Mapper层添加RowBound对象即可,举例
mapper的Java文件
mapper的xml文件
分页调用
物理分页
在Spring的配置文件中修改sqlSessionFactory,添加configLocation
mybatis-configuration.xml
OffsetLimitInterceptor.java
Dialect.java
ReflectionUtils.java
MySQLDialect.java
OracleDialect.java
调用逻辑同逻辑分页的调用