一款超级强大的 ORM 框架 mybatis-mp 1.6.3 正式发布
官网 :https://mybatis-mp.cn
1. 单表 +@Fetch 注解 + fetchFilter 方法
@Data @ResultEntity(SysUser.class) public class SysUserVo { private Integer id; private String userName; private String password; private Integer roleId; private LocalDateTime create_time; @Fetch(source = SysUser.class, property = "roleId", target = SysRole.class, targetProperty = "id") private List<SysRoleVo> sysRoles; }
List<SysUserVO> list = QueryChain.of(sysUserMapper) .from(SysUser.class) .fetchFilter(SysUserVO::getRoles,where->where.eq(SysRole::getStatus,1)) .returnType(SysUserVO.class) .list();
fetchFilter 方法是对 @Fetch 注解的增强,没有特殊要求一般,可忽略
2. 单表查询
SysUser sysUser = QueryChain.of(sysUserMapper) .eq(SysUser::getId, 1) .eq(SysUser::getUserName,'admin') .get();
3.VO 映射
@Data @ResultEntity(SysUser.class) public class SysUserVo { private Integer id; private String userName; //字段名字不一样时 @ResultEntityField(property = "password") private String pwd; }
SysUserVO sysUserVO = QueryChain.of(sysUserMapper) .eq(SysUser::getId, 1) .eq(SysUser::getUserName,'admin') .returnType(SysUserVO.class) .list();
4. join 查询
@Data @ResultEntity(SysUser.class) public class SysUserVo { private Integer id; private String userName; //字段名字不一样时 @ResultEntityField(property = "password") private String pwd; //映射一个对象 1对1 @NestedResultEntity(target = SysRole.class) prviate SysRole sysRole; //映射多个对象 1对多 @NestedResultEntity(target = SysRole.class) prviate List<SysRole> sysRoles; }
List<SysUserRoleVO> list = QueryChain.of(sysUserMapper) .from(SysUser.class) .join(SysUser.class, SysRole.class) .returnType(SysUserRoleVO.class) .list();
还有很多很多超级方便有趣的写法,欢迎大家来使用 https://mybatis-mp.cn
例如:
1 . 多表 join A 内嵌 B B 内嵌 C 都可以
2 . 不使用 join 使用 @Fetch 注解 + fetchFilter 方法实现 将 A JOIN B 变成 query A + query B
3 . 使用 @Paging 注解 实现你的 xml 自动分页
4 . 使用 SQL 模板,让你 ORM 更简单更容易扩展,再也不怕被框架限制了

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
全球瞩目,deepin V23 正式版为何赢得全球用户的青睐?
查看原文 作为中国首个在国际上产生深远影响的Linux发行版,deepin深受全球用户的热爱。deepin V23正式版即将发布,众多海外用户积极参与测试,他们的热情参与和积极反馈让我们深受鼓舞。 他们究竟如何评价deepin V23?又有哪些独到的体验和建议?让我们一同倾听海外用户的声音,感受他们对deepin V23的热爱与期待。 @意大利开源爱好者,在社交媒体平台祝贺deepin V23正式发布,称赞了deepin V23的美观和易用性,对于初学者,也非常友好。 @美国开源爱好者,在社交媒体平台上发布了体验deepin V23的真实感受,从美观的DDE桌面环境到现代的交互设计,从友好的用户使用体验到震撼的视觉效果,他直言deepin V23的优势和潜力巨大。 @丹麦开源爱好者,公布了他对于deepin V23的体验情况,设置了桌面环境,并且在台式机上进行测验,安装了各种应用,并且使用良好。 @菲律宾开源爱好者,在社交媒体平台对deepin V23的时尚设计和用户友好界面表示称赞,他强调deepin V23整体性能流畅,并且增强的文件管理器等新功能使日常任务变得更加轻松。 ...
- 下一篇
Go 1.23 正式发布
Go 编程语言开发团队今天凌晨正式发布 Go 1.23。 此版本带来了众多改进和新特性,下面简单看看主要亮点。 一. 语言特性更新 新的迭代器语法: 在"for-range"循环中,现在可以使用迭代器函数作为range表达式,如func(func(K) bool)。这支持用户自定义任意序列的迭代器。标准库的slices和maps包也添加了支持迭代器的新功能。 泛型类型别名预览: Go 1.23包含了对泛型类型别名的预览支持。 二. 工具链改进 Go遥测系统: 引入了一个opt-in的遥测系统,收集使用情况和错误统计,以帮助理解Go工具链的使用情况和效果,默认不开启。 go命令新功能: go env -changed: 显示与默认值不同的设置。 go mod tidy -diff: 预览必要的go.mod和go.sum文件更改,而不实际修改文件。 go vet增强: 现在可以报告对于目标Go版本来说过新的符号。 三. 标准库更新 新包引入: iter: 支持迭代器相关功能。 structs: 定义用于修改结构体属性的标记类型(marker type)。 unique: 提供用于inter...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器