mybatis-mp:优雅的 xml 自动分页(你没见过的优雅写法)!


有时候,复杂的sql,我们绝大多数的方案就是在xml里,这样方便我们修改和优化,为了帮助开发者进行自动分页

mybatis-mp:

实现了xml 或者 注解 @Select("xxxxsql") 实现自动分页:

1.xml select

<select id="xmlPaging">
select *
from sys_role
where id >= #{id}
and id &lt;= #{id2}
order by id asc
</select>

2:mapper接口编写:

@Paging
Pager<SysRole> xmlPaging(Pager<SysRole> pager, @Param("id") Integer id, @Param("id2") Integer id2);

3:直接使用即可:

SysRoleMapper sysRoleMapper = session.getMapper(SysRoleMapper.class);
Pager<SysRole> pager = sysRoleMapper.xmlPaging(Pager.of(1), 1, 1);

我想说 还有更优雅的吗;其他框架都没有!


相關推薦

2024-06-03

官方文档:http://mybatis-mp.cn   10 大与众不同的亮点: 1:mybatis-mp - 亮点一:可自定义动态默认值 2:mybatis-mp - 亮点二:支持不同数据库 ID 自增配置 3:mybatis-mp - 亮点三:逻辑删除,可自动填充删除时

2024-09-26

官网 :https://mybatis-mp.cn 为什么推荐 mybatis-mp ?: mybatis-mp 是一款超级强大的 ORM 框架 1:可多表 join(不再只能单表了) 2:良好 resultMap 结果映射能力(不怕映射错误了) 3:良好的扩展能力:orm+sql 模板 (让 ORM 框架不

2024-06-01

官方文档:http://mybatis-mp.cn 1.5.3 更新: 1:优化分页paging,让开发者可以继承Pager,并分页是无需再转换 2:兼容普通VO,实现字段名映射,lambda映射,例如:.selectWithFun(SysAuthority::getParentId, c -> c.as(Tree::getParentId)) 3:修复sql模板

2024-05-25

官方文档:http://mybatis-mp.cn 1:mybatis-mp - 亮点一:可自定义动态默认值 2:mybatis-mp - 亮点二:支持不同数据库 ID 自增配置 3:mybatis-mp - 亮点三:逻辑删除,可自动填充删除时间 4:mybatis-mp - 亮点四

2024-04-03

1:mybatis-mp - 亮点一:可自定义动态默认值 2:mybatis-mp - 亮点二:支持不同数据库 ID 自增配置 3:mybatis-mp - 亮点三:逻辑删除,可自动填充删除时间 4:mybatis-mp - 亮点四:可自定义 sql(sql 模板) 5

2024-06-06

官方文档:http://mybatis-mp.cn SysUserVo sysUserVo = QueryChain.of(sysUserMapper) .select(SysUserVo.class) .from(SysUser.class) .join(SysUser.class, SysRole.class) .returnType(SysUserVo.class) .get(); 10 大与众不同的亮点: 1:mybatis-mp - 亮点一:可自定义动态

2024-06-04

官方文档:http://mybatis-mp.cn SysUserVo sysUserVo = QueryChain.of(sysUserMapper) .select(SysUserVo.class) .from(SysUser.class) .join(SysUser.class, SysRole.class) .returnType(SysUserVo.class) .get(); 10 大与众不同的亮点: 1:mybatis-mp - 亮点一:可自定义动态

2024-06-07

官方文档:http://mybatis-mp.cn 1.5.7  加强了对泛型的处理 更好的支持var SysUserVo sysUserVo = QueryChain.of(sysUserMapper) .select(SysUserVo.class) .from(SysUser.class) .join(SysUser.class, SysRole.class) .returnType(SysUserVo.class) .get(); 10 大与众不同的亮点:

2024-06-17

官方文档:http://mybatis-mp.cn 1.5.8 正式发布 1. SQL with 优化,支持with 递归 2. 增加orderByDesc 方法 3:order by nulls first last 适配 4:兼容人大金仓数据库 5:兼容clickhouse 6:修复模板包含列别名的问题 7:优化update set 增加when

2024-06-29

thods count方法增加distinct功能 10 大与众不同的亮点: 1:mybatis-mp - 亮点一:可自定义动态默认值 2:mybatis-mp - 亮点二:支持不同数据库 ID 自增配置 3:mybatis-mp - 亮点三:逻辑删除,可自动填充删除时间 4

2024-07-24

mybatis-mp是一款真正意义上ORM框架,绝对好用的不行!!! 官方文档:https://mybatis-mp.cn 1.6.0 rc1 发布 1:减少生成器maven依赖 2:增加多主键兼容   10 大与众不同的亮点: 1:mybatis-mp - 亮点一:可自定义动态默

2024-07-12

官方文档:https://mybatis-mp.cn 1.5.9 正式发布 1:增加 json字段 对应的typeHandler 2:优化了maven依赖 3:@TableField 增加 insert 开关 4:新增saveOrUpdate 5:优化DaoImpl,让继承者更容易扩展 6:Methods 增加count1()/countAll()方法 7:Met

2024-05-29

官方文档:http://mybatis-mp.cn 1.5.1更新: 1.修复了多数据源 springboot3下报错的问题 2.部分数据库函数同时兼容各数据库 3.增加不同数据库执行不同sql功能 SysUser sysUser = QueryChain.of(sysUserMapper) .select(SysUser::getId) .onDB(DbType.H2, queryC

2024-06-14

官方文档:http://mybatis-mp.cn 1.5.8-rc  优化底层,增加了 with/with recursive 功能 WithQuery withQuery = WithQuery.create("sub") .recursive("n", "n2") .select("1,1"); withQuery.unionAll(Query.create() .select("n+1,n2+1") .from(withQuery) .lt(Methods.column("n"), 2) .l