mybatis-mp 包含丰富的 api:
1:基于注解,映射数据库;
2:支持多表 join 和返回;
3:api 采用 lambda 和 stream 流式设计;
4:内置分页以及超强的 sql 优化功能;
5:稳定且性能极优;
6:轻量级封装 mybatis,几乎没有侵入;
7:api 丰富,支持数据库函数、多表、乐观锁、多租户、逻辑删除、默认值(可动态值) 等众多功能;
8:零学习成本,和写 sql 一样方便。
9:支持复杂的返回关系映射:例如一对一 ,一对多,多对多;
10:内置代码生成器,通过配置,可定制自身规范;
11:全新的框架,全新的设计理念,新的就是好!
mybatis-mp 1.2.6 更新:
1:增加 and(动态条件) or(动态条件) 方法
//Query中使用
Integer id = QueryChain.of(sysUserMapper)
.select(SysUser::getId)
.from(SysUser.class)
.and(SysUser::getId, c -> c.concat("x1").eq("2x1"))
.setReturnType(Integer.TYPE)
.get();
//Where中使用
SysUser sysUser = sysUserMapper.get(where -> where.and(SysUser::getId, c -> c.concat("x1").eq("2x1")));
2:增加mapWithKey 多个方法,用于指定 key ,value的map查询
//最强mapWithKey 完全自己构建
Map<Integer, SysRole> map = QueryChain.of(sysRoleMapper).mapWithKey(SysRole::getId);
//根据where条件
Map<String, SysRole> map1 = sysRoleMapper.mapWithKey(SysRole::getName, where -> {
where.gt(SysRole::getCreateTime, LocalDate.parse("2023-01-01").atStartOfDay());
});
//根据多个id
Map<Integer, SysRole> map2 = sysRoleMapper.mapWithKey(SysRole::getId, 1, 2, 3);
//根据List<id>
Map<Integer, SysRole> map3 = sysRoleMapper.mapWithKey(SysRole::getId, Arrays.asList(1, 2, 3));
3:围绕Mybatis Mapper接口 底层优化!
更新说明:
1.2.6版本大大方便了对条件的构建;mapWithKey 方法也给不喜欢join的开发提高了多表遍历的遍历,所以历时一天,决定更新,让更多的人用上!