首页 > 其他分享 >MyBatis最牛逼的IDEA插件,功能强大,帮你节省95%代码量

MyBatis最牛逼的IDEA插件,功能强大,帮你节省95%代码量

时间:2022-09-25 22:36:54浏览次数:82  
标签:xml mapper 插件 代码 IDEA 生成 MyBatis alt 方法

参考博客:EasyCode

下载安装

下载

MyBatisCodeHelperPro插件下载地址:MyBatisCodeHelperPro

安装

Intellij最新插件MybatisCodeHelper-2.8.1-191-201,使用方法IDEA顶部菜单:Tools -> MybatisCodeHelper -> Activation -> OfflineActivation,在offline key框输入任意字符串
在这里插入图片描述

配置

数据库用的tinyInt 或者 smallInt生成java类型是 byte 和 short 两种类型。在java代码里面操作 byte 和 short 类型比较麻烦,经常需要强制转换,下面是设置使用Integer 来替代byte和short还有使用Java8的日期时间类型
在这里插入图片描述

使用

Maven依赖

创建Maven项目,为保证生成的代码不出丙错误提示,导入依赖:

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.4</version>
</dependency>

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.10</version>
</dependency>

<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>5.1.11</version>
</dependency>
<!-- 保证生成的Service层的注解不错 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.1.RELEASE</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

根据实体类生成建表sql

按alt+insert
在这里插入图片描述
在这里插入图片描述
生成的SQL语句:
在这里插入图片描述
生成好了建表语句后,到数据库中执行, 然后从数据库来生成crud代码

根据表生成Bean、Dao+mapper和Service

第一步:在Intellij中连接上MySQL数据库,在指定的表上右键
在这里插入图片描述
第二步:配置生成信息
在这里插入图片描述
说明:

  • exampleQuery:会生成一大堆的example文件,xml中的example代码看起来也很乱、建议使用方法名生成sql来替代。
  • 不推荐mapper接口做继承,所以baseClass选项也不要选。现在代码都是自动生成的,mapper做继承仅能减少一些代码量,效率提升不明显。搞了继承后,看mapper接口对应的xml也变得比较麻烦,哪些方法要放到继承里面也比较难定义,有可能某些接口继承的方法根本用不到。 建议是每个接口只生成自己需要的xml方法。
    -generatedComments选项建议选中,不然会出现如下所示的提示
    在这里插入图片描述

第三步:查看各个生成的目录
在这里插入图片描述

根据接口中的方法名生成对应的mapper

  • 只需要一个方法名,不需要参数和返回值,输入方法名后,按alt+enter–Generate mybatis sql 就可以生成了
    在这里插入图片描述
  • 方法名生成sql时支持if test

在这里插入图片描述

一键添加@param注解

按alt+enter
在这里插入图片描述
结果:
在这里插入图片描述

生成mapper映射文件中resultMap未使用的字段

光标放到resultmap标签type属性值上 -> alt + enter -> generate unUsed properties
在这里插入图片描述
结果:
在这里插入图片描述

根据mapper接口生成mapper映射文件

创建一个接口 -> 光标放到接口名上 -> alt + enter -> generate mybatis mapper for current class -> 选择mapper映射文件位置
在这里插入图片描述

生成find方法

根据方法名 直接生成sql代码 方法名有自动提示 单表操作的代码只有写个方法名就好了
find方法
在这里插入图片描述

生成update方法

在这里插入图片描述

生成delete方法

在这里插入图片描述

生成count方法

在这里插入图片描述

生成测试用例

在这里插入图片描述

生成分页查询 (依赖于 pageHelper)

在这里插入图片描述
在这里插入图片描述
在DeptServiceImpl类中就可以查看到刚才生成的带有分页功能的代码。

从表数据导出java insert语句

可用于快速构造测试数据
在这里插入图片描述

Dao中方法名的规则

find方法

可以使用 select query get 替代find开头,支持orderBy,distinct, findFirst
在这里插入图片描述

update方法

可以使用modify替代update开头

在这里插入图片描述

delete方法

可以使用remove替代delete开头

在这里插入图片描述

count方法

支持distinct
在这里插入图片描述

生成不基于Spring的单元测试

光标定位在Mapper中待生成测试方法的方法声明上按快捷键alt+enter

在这里插入图片描述
最终生成的测试代码:

public class DaShangMapperTest {
    private static DaShangMapper mapper;

    @BeforeEach
    public static void setUpMybatisDatabase() {
        SqlSessionFactory builder = new SqlSessionFactoryBuilder().build(DaShangMapperTest.class.getClassLoader().getResourceAsStream("mybatisTestConfiguration/DaShangMapperTestConfiguration.xml"));
        //you can use builder.openSession(false) to not commit to database
        mapper = builder.getConfiguration().getMapper(DaShangMapper.class, builder.openSession(true));
    }

    @Test
    public void testInsertDaShang() throws FileNotFoundException {
        mapper.insertDaShang();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

使用小技巧

查看字段

在mapper.xml文件的字段中按着ctrl键,单击字段,会自动跳转表表的字段中,方便查看各字段的含义:在这里插入图片描述

根据实体类生成sql文件

创建一个实体类,在实体类上右键-generate
在这里插入图片描述
选择generte mybatis files
在这里插入图片描述
在这里插入图片描述
其中:

  • unique:唯一索引,不可重复;
  • index:普通索引,可重复;

有了表之后就可以创建mapper、mapper.xml、service、serviceImpl了

来源:https://hcshow.blog.csdn.net/article/details/105511508

标签:xml,mapper,插件,代码,IDEA,生成,MyBatis,alt,方法
From: https://www.cnblogs.com/konglxblog/p/16729216.html

相关文章

  • Springboot之 Mybatis 多数据源实现
    简介上篇讲解了JPA多数据源实现;这篇讲解一下Mybatis多数据源实现。主要采用将不同数据库的Mapper接口分别存放到不同的package,Spring去扫描不同的包,注入不同的数......
  • Intellij IDEA 实用插件推荐
    1.前言2020年JVM生态报告可以看出IntellijIDEA目前已经稳坐JavaIDE头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA的优良设计保证了编程的生产......
  • IntelliJ IDEA 快捷键说明大全(中英对照、带图示详解)
    因为觉得网络上的idea快捷键不够详尽,所以特别编写了此篇文章,方便大家使用ideaO(∩_∩)O~其中的英文说明来自于idea的官网资料,中文说明主要来自于自己的领会和......
  • 【前端必会】webpack 插件,前进路绕不过的障碍
    背景webpack的使用中我们会遇到各种各样的插件、loader。webpack的功力主要体现在能理解各个插件、loader的数量上。理解的越多功力越深开始https://webpack.docschi......
  • vue使用轮播图插件vue-awesome-swiper
    案例,我目前使用的是vue2版本的2.6,安装vue-awesome-swiper是3.1.3版本的   第一步:在项目中使用npminstallvue-awesome-swiper--save 如果要指定我的版本......
  • Java学习之IDEA基础
    ​Java学之IDEA简单了解​ ​一、在IDEA中实现HelloWorld​1、创建一个空项目(JavaSE_Code)2、创建一个新模块(idea_test)3、在idea_test模块下的src下创建一个......
  • K8s 网络插件 Calico 报错:Number of node(s) with BGP peering established = 0
    问题现象calico对应的Pod启动失败,报错:Numberofnode(s)withBGPpeeringestablished=0问题分析Calico提供了IP自动检测的方法,默认是使用第一个有效网卡上......
  • IDEA导出可执行包
    IDEA导出可执行包1.*方式一1、点击ProjectStructure按钮->选择Artifacts->点击“+”->选择JAR->选择“Frommoduleswithdependecies...”2、选择App,设置/META-INF/M......
  • 03 MyBatis自定义映射
    一、MyBatis环境搭建1.1、数据的准备CREATEDATABASEIFNOTEXISTSdb_test;USEdb_test;CREATETABLEIFNOTEXISTSt_emp( emp_idintPRIMARYKEYauto_increme......
  • 解决idea出现报错:Error running,Command line is too long. Shorten command line
    问题场景IDEA测试类运行报错如下: 报错原因因为项目需要打印的环境变量太长,超过了限制,需要缩短命令行来解决问题。解决办法首先找到项目里面的idea/workspace.xml......