MyBatis Plus的分页插件原理是在SQL执行之前,动态添加分页条件。
它支持以下主要数据库:
- MySQL
为MySQL添加limit分页条件:
select * from user limit #{page}, #{size}
- Oracle
为Oracle添加rownum伪列:
select * from (
select a.*, rownum r
from ( select * from user) a
where rownum <= #{offset+pageSize}
) where r >= #{offset}
- SQLServer
使用 SQLServer 的分页函数:
select * from user
order by id
offset #{offset} rows
fetch next #{pageSize} rows only
- Postgres
为Postgres添加limit分页:
select * from user
limit #{pageSize} offset #{offset}
- DB2
为DB2添加fetch分页:
select * from user
fetch first #{pageSize} rows only
offset #{offset}
- H2
为H2数据库添加分页:
select * from user
limit #{pageSize} offset #{offset}
- SQLite
同样支持limit分页:
select * from user
limit #{pageSize} offset #{offset}
总结,Mybatis Plus的分页插件支持的主要数据库有:
MySQL、Oracle、SQLServer、Postgres、DB2、H2、SQLite等数据库。
对于不同数据库,插件会生成对应的分页语句。