Mybatis-LinkMybatis Plus 的增强工具
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
评论