Mybatis-LinkMybatis Plus 的增强工具

联合创作 · 2023-09-28 10:19

Mybatis Link是一个 Mybatis Plus 的增强工具,在Mybatis Plus的基础上进行了增强,主要解决一对一、一对多等多表联查,以及允许分布式应用远程调用和优化问题,从而达到敏捷开发的目的,实现零SQL编写。


特性



  • 无侵入: 在Mybatis Plus基础上做了增强,继承了强大的MP特性,配置方式也是一样。

  • CRUD操作: 通过改造升级,内置通用 Dao、通用 Mgr,实现表单基础的CRUD操作。

  • 多表联查操作: 内置了注解@Link类,用在 Dao 方法上,可以实现一对一连表查询(包括左连接、右连接、内连接),一对多连表查询。


零SQL:


采用注解的方式支持连表查询,满足大多数项目连表要求,可以实现零SQL编写。


连表查询示例:


更多连表示例:https://easy4use.cn/guide/link-search.html



/**
* a 内连 c
* a表的c_id字段,与c表中的id主键字段,进行连表查询。
*/

@Link(ones = { @OneToOne(leftColumn = "c_id", rightClass = TestCVo.class) })
List<TestADto> listTestAATestC(@Param(Constants.WRAPPER) Wrapper<TestAVo> wrapper);

/**
* a 左连 b
*/

@Link( ones = {
@OneToOne(leftColumn = "b_id", rightClass = TestBVo.class,
joinType = JoinType.LEFT, onArgName = "abOn") })
List<TestADto> listTestALtTestB(@Param(Constants.WRAPPER) Wrapper<TestAVo> wrapper);

/**
* a 一对多 b
*/

@Link( manys = {
@OneToMany(leftColumn = "b_id", rightClass = TestBVo.class,
ofTypeClass = TestBDto.class, property = "testBList") })
List<TestADto> listTestAWTestB(@Param(Constants.WRAPPER) Wrapper<TestAVo> wrapper);

配置:



mybatis-plus:
typeAliasesPackage: yui.bss.*.vo
mapperLocations: classpath:/mapper/**/*.xml
global-config:
db-config:
id-type: ASSIGN_ID
field-strategy: NOT_NULL
column-underline: true
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
banner: false
sql-parser-cache: true
super-mapper-class: yui.comn.mybatisx.core.mapper.BaseDao

最新Maven版本:



<dependency>
<groupId>com.gitee.easy4use</groupId>
<artifactId>mybatis-link-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>

附:项目信息


项目官网:https://easy4use.cn/


Mybaits-Link项目源码:https://gitee.com/easy4use/mybatis-link


项目示例:https://gitee.com/easy4use/mybatis-link-samples

浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报