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的开发提高了多表遍历的遍历,所以历时一天,决定更新,让更多的人用上!