基于Mybatis-Plus封装的多表关联查询器,优雅且美好
github地址:https://github.com/SuyunGit/mybatis-plus-join
gitee地址:https://gitee.com/suyungit/mybatis-plus-join
为了解决简单的多表查询而生,避免编辑mapper.xml文件的尴尬,无需过多的配置,多行链式调用一撸到底
它具备哪些特点呢?
- 最重要的就是不需要再写xml了
- 再就是全部可以使用链式调用,基于JDK8的Lambda表达式
- 再次解放双手,字段的查询和字段条件的设置可以全部使用函数式
- 本身查询返回的是Map对象,同时内置Map转实体对象
- 可以进行分页查询
- 只要你愿意,关联100个表都没问题
- 查询的字段支持自定义别名
- 支持JOIN,INNER JOIN,CROSS JOIN,LEFT JOIN,RIGHT JOIN;当然也支持WHERE JOIN
- 提供返回完整SQL语句的函数
- 内置条件值的自动判空函数
- 支持多租户和逻辑删除配置
- 支持开启DISTINCT关键字
- IN SQL和NOT IN SQL优化,传入参数元素数量为1,自动转为等于或不等于
- …
它的缺点
- 可能代码式的SQL不如xml式的SQL更直观
- 刚开始使用可能会觉得麻烦
- 不熟悉Lambda的人可能觉得使用起来会不爽
- WHERE关联和JOIN关联可以混搭,但会有先后关连顺序的问题
- 无法完美支持子查询,子查询代码片段需要手动apply
- 无法完美支持SQL函数,需要调用SQL函数,只能手动了
- 其它更多问题有待发现…
预想实现
- 首先是内置常用SQL函数
- 想方设法的友好支持子查询
- 支持关联到指定表
- 支持SQL优化
- 暂时就想到这么多
如何使用
- 第一步,先下载代码,可以直接把代码集成到项目中去,也可以打包添加到项目依赖中(注意mybatis-plus版本需要在3.4.0以上,JDK版本需要在1.8以上)
大家也可以用我发布的包,目前发布的都是SNAPSHOT,暂时是1.0版本,有时间我会多测试修改并发布
- 仓库地址:
http://nexus.sigment.cn/repository/maven-group-xgkeeper/
<dependency> <groupId>org.join.plus