Mybatis-Link 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Mybatis-Link 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Mybatis-Link 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Mybatis-Link 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Mybatis-Link 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 Apache
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发常用工具包
开源组织
地区 国产
投 递 者 easy4use
适用人群 未知
收录时间 2021-04-12

软件简介

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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (29)

加载中
打分: 还行
评论区有朋友说, 以“较为优雅”的链式调用方式,来实现简单的联表查询 , 这个方向在别的语言上已经有实践。 在Java领域,毛遂自荐一下本人写的框架 QuickDAO ,就是使用了链式调用的方式,joinTable方法作为核心的连表查询方法。 以前只敢跟别人用QuickDAO只能写一些比较简单的SQL,但是发展到QuickDAO4,我可以很自信的说,即便是相当复杂的SQL语句,也能够通过QuickDAO提供的AP实现,而且代码结构清晰! 这里是文档: https://quickdao.schoolwow.cn/#/zh-cn/select/joinTable
04/20 18:02
回复
举报
没必要吧,mybatis-plus做一些简单查询,复杂sql用xml写就好了。你在@Link说实话难读
04/20 09:12
回复
举报
mybatis-plus是辅助mybatis加一些方便操作的。像一对一、一对多等写sql就行了。不然直接用jpa不得了
04/19 07:53
回复
举报
mybatis-plus都有增强啦... mybatis++
04/18 23:43
回复
举报
直接用JPA的标准注解不就行了,就喜欢自己造轮子
04/18 21:06
回复
举报
Mybatis Plus 是 Mybatis 的增强,Mybatis-Link 又是 Mybatis Plus的增强,玩套娃么?
04/18 17:23
回复
举报
JPA QueryDSL 不香吗
04/18 09:14
回复
举报
我个人觉得,注解这种工具破坏 编程语言的逻辑性, 多少用用还行,如果用多了,感觉代码没有逻辑性了。 spring里大量使用注解,感觉有点不对劲,过了。
04/17 21:24
回复
举报
反射可以说是高级语言的特权,java把反射玩到了极致,挺好的,我C++羡慕还来不及呐。
04/17 23:00
回复
举报
下个 spring 版本,已经不用注解了
04/18 13:14
回复
举报
同意使用jpa,如果能将linq移植到Java就好了, 操作数据库和集合,非常优雅。
04/17 21:22
回复
举报
mybatis封装成这样,还不如jpa
04/17 19:59
回复
举报
更多评论
发表于开发技能专区
04/12 16:22

持久层框架 Mybatis-Link V1.0.0 正式版发布

欢迎使用 Mybatis-Link V1.0.0 持久层框架 Mybatis Link是一个Mybatis Plus的增强工具,在Mybatis Plus的基础上进行了增强,主要解决一对一、一对多等多表联查,以及允许分布式应用远程调用和优化问题,从而达到敏捷开发的目的,实现零SQL编写。 关于1.0.0 版本更新内容 【新增】: 源码官网发布Mybatis-Link 【新增】: 全新的Mgr业务层和Dao支持层抽象类。 【新增】: 注解@Link类,作用在 Dao 方法上,可以实现一对一连表查询(...

21
12
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2016/04/13 17:41

Myeclipse 的MyBatis插件link安装

下载离线包将features文件和plugins文件复制到D:\\Tool\\MyEclipse\\mybatis 文件下 (路径可以自己设置) 在Myeclipse的dropins目录下 新建一个文件 名为 mybatis.link 内容为 path=D:\\Tool\\MyEclipse\\mybatis 就是你features文件和plugins文件的路径。 重启Myeclipse即可

0
1
2020/02/27 09:35

mybatis-generator-maven-plugin:Communications link failure

> 使用 mybatis-generator 的 maven 插件可能会报出如下问题 ```java Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.7:generate (default-cli) on project MyProject: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. ``` 一般来说,这种情况是数据库url写错了...

0
0
发表了博客
2015/08/18 13:17

link

快学Scala http://product.dangdang.com/23467688.html#ddclick?act=click&pos=23467688_0_1_q&cat=&key=scala&qinfo=210_1_60&pinfo=&minfo=&ninfo=&custid=&permid=20150126103541149215324507696458994&ref=http%3A%2F%2Fwww.dangdang.com%2F%3F_ddclickunion%3D460-5-biaoti%7Cad_type%3D0%7Csys_id%3D1&rcount=&type=&t=1422239745000&ver=A Spark大数据处理:技术、应用与性能优化(根据最新技术版本,系统、全面、详细讲解...

0
0
发表了博客
2014/05/25 17:09

Hard link and soft link in Linux

在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。 硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。语法: ln [options] existingfile newfile ln [options] existingfile-list directory 用法: 第一种:为”existingfile”创建硬链...

0
1
发表了博客
2018/03/09 15:54

DB_LINK

--DBLink; --查看DBLink select * from dba_db_links; --授权 grant create public database link; --或者create database link to myAccount; --创建(如果在create之后不加public,则创建的dblink就不是公共的,就只有创建者可以使用了.) create database link TO_anxin connect to anxindev identified by axdev20170308    using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 139.199.7.38)(PORT = 1521)) (CONNECT_...

0
0
发表于数据库专区
2016/07/23 15:53

DB Link

DB Link

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
29 评论
33 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部