03 MyBatisCodeHelperPro

MyBatisCodeHelperPro是一款强大的Mybatis代码生成插件,能帮助开发者快速生成建表语句、CRUD代码、接口、测试类等。它支持从Java类和数据库直接生成相关代码,简化开发流程,提高效率。通过全局和项目配置,可以定制代码生成模板,包括批量操作、自定义方法和SQL生成。同时,该插件还提供了Java类生成SQL和基于方法名生成XML的功能,是提升开发速度的理想工具。
该文章已生成可运行项目,

03 MyBatisCodeHelperPro


简介

插件介绍文档

个人使用经验来看,无愧是目前最好用的Mybatis代码生成插件。简单列下日常高频使用的功能特性:

  1. 通过java类生成建表语句
  2. 通过数据库生成crud代码
  3. Java接口与xml互相跳转
  4. 通过方法名生成sql
  5. 一键生成mybatis接口的testcase

安装&配置

安装

设置-插件,搜索mybatiscodehelperpro,emm…有2个。

  1. 如果你的IDEA是使用eval reset插件不断试用的(适用2021.2.2及以下版本),请下载Marketplace Edition版本
  2. 如果你的IDEA是2020.1及以下版本,请参考https://zhile.io/2019/04/23/mybatis-code-helper-pro-crack.html…
    在这里插入图片描述

配置

全局配置

设置Mapper接口的后缀名,通常设置为Dao或者Mapper; 设置试用java8的日期及Integer替代Byte类型;设置Model类后缀如PO。

在这里插入图片描述

项目配置

基本上开箱即用,我通常会配置一些批量的代码生成方法。

  1. selectByIdIn、updateByIdIn、deleteByIdIn
  2. 另外selectByAll不建议使用

在这里插入图片描述

使用

简介中的5个功能特性,其实就是我的一般使用姿势。尤其是1、2、5,主要用作新增表时的代码生成。一般使用流程如下:

  1. 编写PO对象,根据PO对象生成表结构 -> 可选,大家可能也习惯直接先写建表语句
  2. 建表,再通过插件代码生成接口、mapper、po -> 核心功能,代码生成
  3. 对mapper生成单元测试类 -> 可选,简单易用的单测功能
  4. 根据方法名生成mapper -> 比较好玩,大家可能比较喜欢用这个,我个人的习惯使用selectByExample,避免每次新增SQL都要改动到dao层

通过java类生成建表语句

java类生成建表语句 - Document

右击PO对象,生成->generate mybatis files。默认会根据PO字段生成,并填充注释等,这里在检查下表名、类型、默认值,索引等。然后可以预览SQL查看是否🆗。

在这里插入图片描述

generateCreateTable

通过数据库生成crud代码

添加数据源

首先在IDEA右侧的侧边栏【数据库】,添加一个数据源,这里我以一个本地h2数据源示例。

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0dPcyWWQ-1663174311076)(C:\Users\theskyzero\AppData\Roaming\Typora\typora-user-images\image-20220915000316284.png)]

代码生成

先建表,右击数据表,选择mybatis-generator,来到我们的代码生成可视界面~

先对每个表使用mybatis-generator,我们通常都会定制列等,之后是可以使用批量方式覆盖的。

在这里插入图片描述

代码生成配置:源码路径、定制列等

在这里插入图片描述

这些选项基本上是我们当前使用的最佳实践

  1. useGeneratedKey:返回自增主键
  2. 勾选:其他的都不用标,没啥意义或者有冲突或者不通用
    1. @Data;Builder基本上用不到
    2. 不生成jdbcType:自动检测,尽量使用标准的数据类型,产生标准的SQL。也能避免修改了db数据类型但mapper映射错误的场景
    3. @Mapper注解:建议勾选,这个是个人的习惯,因为我们扫描mybatis会按@Mapper注解来扫描注解代理类,不会直接只按包路径,避免非mapper接口被产生代理类
    4. 生成注释:生成po对象的注释
    5. 生成selectByExample:很香,dao层一次生成不用改动!
  3. 定制列:一般定制boolean字段的类型和名称、还有时间类型我们的习惯是使用Instant
更多SQL生成:batchInsert、batchUpdate、insertOnDuplicate

在这里插入图片描述

  1. batchInsert:批量插入
  2. batchUpdateSelective:适合简单的集合size比较小的按id批量更新
  3. insertOnDuplicate:单条数据insertOnDuplicate,适合逻辑删除场景的插入操作。(如果有批量的insertOnDuplicate,又是个优雅的适合批量更新的方法)
定制默认方法:insertSelective、updateByPrimaryKey、updateByPrimaryKeySelective…

在这里插入图片描述

这个没得说的,updateByPrimaryKey和updateByPrimaryKeySelective就是全量更新和增量更新的区别,大部分场景我们是增量更新,但如果比如需要将字段变更成null,又需要全量更新。(对于string,使用空字符串替代null没问题,但如时间的类型就不能)

通过接口名生成xml

方法名生成sql - Document
findMethodNameToSql

生成mybatis接口测试类

一键生成测试mybatis接口的测试类

generateTestcase

本文章已经生成可运行项目
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

theskyzero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值