mybatis-mapper1.0.0发布(代码片段)

isea533 isea533     2022-12-21     520

关键词:

mybatis-mapper 1.0.0 发布了🎉🎉🎉

项目官网: https://mapper.mybatis.io

介绍

这是一个不需要任何配置就可以直接使用的通用 Mapper,通过简单的学习就可以直接在项目中使用。主要特点如下:

  1. 开箱即用,无需任何配置,继承基类 Mapper 即可获得大量通用方法;
  2. 随心所欲,通过复制粘贴的方式可以组建自己的基类 Mapper;
  3. 全面贴心,提供 Service 层的封装方便业务使用和理解 Mapper;
  4. 简单直观,提供 ActiveRecord 模式,结合 Spring Boot 自动配置直接上手用;
  5. 自定义方法,简单几行代码即可实现自定义通用方法;
  6. 轻松扩展,通过 Java SPI 轻松扩展。

有关使用方面的内容可以查看 快速上手

开发过程

2014年11月开源的 tk.mybatis.mapper 算得上是 MyBatis 的一个重要里程碑,从 通用Mapper 开始,MyBatis 有了真正意义上的通用 DAO 层,增删改查真的不用在手写或者自动生成,极大的方便了开发人员。

通用Mapper 经历过几次大的重构,每次都从底层使用新的思路重新实现,从第一个版本发布到2020年发布的 4.1.5 版本,一直是兼容性升级,虽然底层变化了很多,集成方式有了变化,但是业务上集成的接口一直兼容。

虽然经历了几次大的重构,但是由于MyBatis内部的机制,导致无法以更方便更简洁的形式来实现通用Mapper,从2018年就一直想要从根去解决这个问题,在 2019年3月份给 MyBatis 提交的pr#1391 合并后(对应 3.5.1 版本,最低要求版本),终于能以更简单的方式来实现通用 Mapper 了。

2019年实现过一版新的通用Mapper,但是感觉不够好。2020年本来是要写新一版的《MyBatis 从入门到精通》的,写的过程中也在想着如何把通用Mapper结合到书中,在写书的过程中,逐渐形成了一个新的思路,结果把目标从写书转移到了开源项目(不务正业),由于工作经常 996,直到2020年底才基本完成新的实现。本来计划在2021年1月份发布正式版,为了提供一个更灵活的代码生成器(Mybatis 的 MBG太死板,扩展麻烦),工作重心又转移到了代码生成器,最终实现了一个代码简单,功能却异常强大的代码生成器 睿Rui(没开源,作为工具包含在当前项目中直接使用),此时又过去了好几个月,想着在2021年中发布正式版,为了尝试在新版本中尽可能通过扩展 100% 兼容 tk-mapper,又增加了一些 SPI 扩展接口。结果一直拖到了8月份。直到这个月才把 1.0.0 发布了。

整个项目从构思到最终发布经历了近3年的时间,虽然已经花了无数的时间,但是仍然不能保证有不完美的地方,项目初期,大家发现BUG或者有任何想法都可以提 issues。

为什么新版本是 1.0.0?

这是一个全新的版本的,采用了新的包名 io.mybatis,采用了全新的实现,核心代码是独立的 mybatis-provider 项目,在此项目之上形成了 mybaits-mapper,这个版本不需要任何配置(不会再因为配置出错),可以简单快速的集成并使用。

关于新版本的特点,可以通过 快速上手 进行了解。

后续计划

在旧版本 通用Mapper 中,有大量的新功能和PR都是增加的新的通用方法,这些方法有些是限制很少的通用方法,也有很多需要特地条件的通用方法,新版本不会轻易增加新的通用方法,但是会提供一个扩展项目来容纳所有有意义的通用方法,一方面方便有需要的人取用,一方面可以作为方法扩展的示例。

除了通用方法外,后续会提供针对 spring boot 的简单 demo,方便入门练习或者参考。

再之后会提供一个脚手架(或找一些现成的开源)项目改造为 睿Rui 代码生成器使用的项目模板,可以快速从头创建项目,可以在项目中方便的生成代码。

天地图瓦片服务地址(代码片段)

 官网地址为http://t0-7.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX=z&TILEROW=x&TILECOL=y&tk=  应修改为http://t0-7.tianditu.gov.cn/img_w/wmts?SERVI... 查看详情

java通用配置集成spring(代码片段)

...ff08;五)集成Spring本系列参考实现:https://gitee.com/mybatis-mapper/confighttps://github.com/mybatis-mapper/config作为一个Java通用配置管理,想让用户使用更简单,只需要依赖一个模块就行:<dependency><groupId>io.mybatis<... 查看详情

.net静态代码织入——肉夹馍(rougamo)发布1.1.0

肉夹馍(https://github.com/inversionhourglass/Rougamo)通过静态代码织入方式实现AOP的组件,其主要特点是在编译时完成AOP代码织入,相比动态代理可以减少应用启动的初始化时间让服务更快可用,同时还能对静态方法进行AOP。在上一篇文... 查看详情

mybatis-mapper示例封装baseid(代码片段)

mybatis-mapper快速上手项目分支介绍https://github.com/mybatis-mapper/mybatis-mapper-example-springboot项目目前包含3个分支,分别为:master简单集成baseid简单封装,所有表都使用名为id,类型为bigint的自增主键shardingsphere分库分表&# 查看详情

mybatis-mapper示例封装baseid(代码片段)

mybatis-mapper快速上手项目分支介绍https://github.com/mybatis-mapper/mybatis-mapper-example-springboot项目目前包含3个分支,分别为:master简单集成baseid简单封装,所有表都使用名为id,类型为bigint的自增主键shardingsphere分库分表&# 查看详情

nacos发布1.0.0ga版本,可大规模投入到生产环境(代码片段)

经过3个RC版本的社区体验之后,Nacos正式发布1.0.0GA版本,在架构、功能和API设计上进行了全方位的重构和升级。1.0.0版本的发布标志着Nacos已经可以大规模的在生产环境中使用,新版本不仅针对社区的需求和集群的稳定性相应地... 查看详情

mybatis-mapper示例spring-boot(代码片段)

mybatis-mapper快速上手项目分支介绍https://github.com/mybatis-mapper/mybatis-mapper-example-springboot项目目前包含3个分支,分别为:master简单集成baseid简单封装,所有表都使用名为id,类型为bigint的自增主键shardingsphere分库分表&# 查看详情

mybatis-mapper示例spring-boot(代码片段)

mybatis-mapper快速上手项目分支介绍https://github.com/mybatis-mapper/mybatis-mapper-example-springboot项目目前包含3个分支,分别为:master简单集成baseid简单封装,所有表都使用名为id,类型为bigint的自增主键shardingsphere分库分表&# 查看详情

mybatis-mapper示例sharding-jdbc(代码片段)

mybatis-mapper快速上手项目分支介绍https://github.com/mybatis-mapper/mybatis-mapper-example-springboot项目目前包含3个分支,分别为:master简单集成baseid简单封装,所有表都使用名为id,类型为bigint的自增主键shardingsphere分库分表&# 查看详情

443m衣架遥控arduino代码备档(代码片段)

byteup[65]=0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1;bytelm[65]=0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 查看详情

转换 bool[] -> "1,0,0,1,1" 的简洁代码

...【英文标题】:Neatcodetoconvertbool[]->"1,0,0,1,1"【发布时间】:2022-01-0701:28:48【问题描述】:如何使用尽可能少的代码行将布尔数组转换为像“1,0,0,1,1”这样的字符串?我想将它转换为字符串,所以我有一个新字符串“@1001... 查看详情

hcip-路由策略实验(代码片段)

  实验要求:利用重发布技术与路由策略满足路由无环且避免选路不佳 实验思路:一、配置IP地址[r1]intg0/0/0[r1-GigabitEthernet0/0/0]ipa192.168.12.124[r1]intg0/0/1[r1-GigabitEthernet0/0/1]ipa192.168.13.124[r1-GigabitEthernet0/0/1]intl0[r1-LoopBack0]ipa... 查看详情

发布一个npmpackage(代码片段)

1.创建一个package.json文件发布到npmregistry的包必须包含一个packge.json文件。1.必需name字段要求:1.只能是一个单词,但是可以包含-或_2.只能是小写字母2.必需version字段version字段必须遵循语义化版本规范。每变更一次,就需要修改... 查看详情

每日算法刷题-dfs题目(代码片段)

题目 输入:grid=[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0, 查看详情

从文件读入多个数组

...读入多个数组【英文标题】:readingfromfileintoseveralarrays【发布时间】:2016-01-1319:34:01【问题描述】:我想编写一个读取文本文件test.txt的c++代码并将内容写入几个数组。文件看起来像:[7,13,17][[0,1,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0],[1,0,0,0,0,0,... 查看详情

maxareaofisland(代码片段)

Givenanon-empty2Darray grid of0‘sand1‘s,an island isagroupof 1‘s(representingland)connected4-directionally(horizontalorvertical.)Youmayassumeallfouredgesofthegridaresurroundedbywater.Findthemaximumareaofanislandinthegiven2Darray.(Ifthereisnoisland,themaximumareais0.)Ex... 查看详情

棋盘游戏的 int 数组

】棋盘游戏的int数组【英文标题】:Intarrayforboardgame【发布时间】:2021-12-0716:33:09【问题描述】:int[,]board=0,0,2,0,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,0,1,0,0,0,0,0,0,1,2,1,0,0,0,0,1,1,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,;这是我的数组代码。 查看详情

gradle版本/gradleplugin版本/javajdk版本/kotlin版本(代码片段)

一、gradle发布版本参考:gradle发布版本Java版本兼容:JavaversionFirstGradleversiontosupportit82.094.3104.7115.0125.4136.0146.3156.7167.0177.3二、gradle版本和gradle插件版本匹配兼容参考:gradle版本和gradle插件版本匹配兼容下表列出了各个A... 查看详情