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

浏览 3
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报