【第27章】MyBatis-Plus之Mybatis X 插件

文章目录

  • 前言
  • 一、安装指南
  • 二、核心功能
    • 1.XML 映射跳转
    • 2.代码生成
    • 3. 重置模板
  • 三、JPA 风格提示
  • 四、常见问题解答
    • 1. JPA 提示功能无法使用?
    • 2. 生成的表名与预期不符?
  • 五、代码生成模板配置
    • 1. 默认模板
    • 2. 重置默认模板
    • 3. 自定义模板内容
      • 3.1 实体类信息
      • 3.2 字段信息
      • 3.3 配置信息
  • 总结


前言

MybatisX 是一款专为 IntelliJ IDEA 设计的快速开发插件,旨在提升 MyBatis 与 MyBatis-Plus 框架的开发效率。


一、安装指南

  1. 打开 IntelliJ IDEA。
  2. 进入 File -> Settings -> Plugins -> Browse Repositories
  3. 在搜索框中输入 mybatisx
  4. 找到 MybatisX 插件并点击安装。
    在这里插入图片描述

支持开发者
如果您觉得 MybatisX 插件对您有帮助,请在插件页面给予五分好评,以支持开发者持续改进。
也欢迎大家参与 MyBatisX 插件的贡献,源码地址:MybatisX 源码

二、核心功能

1.XML 映射跳转

MybatisX 提供了便捷的 XML 映射文件与 Java 接口之间的跳转功能,让开发者能够快速地在两者之间切换,提高开发效率。

2.代码生成

通过 MybatisX,您可以轻松地根据数据库表结构生成对应的 Java 实体类、Mapper 接口及 XML 映射文件。

需要通过IDEA的database连接到数据库

3. 重置模板

MybatisX 允许您重置代码生成模板,以恢复到默认设置或自定义模板内容。

三、JPA 风格提示

MybatisX 支持 JPA 风格的代码提示,包括新增、查询、修改和删除操作的自动代码生成。

  • 生成新增操作
  • 生成查询操作
  • 生成修改操作
  • 生成删除操作

四、常见问题解答

1. JPA 提示功能无法使用?

JPA 提示功能依赖于 Mapper 接口与实体类之间的关联。确保您的 Mapper 满足以下任一条件:

  1. 继承了 mybatis-plus 的 BaseMapper。
  2. Mapper.xml 文件中包含 resultMap 标签。
  3. 在 Mapper 类上通过注释指定了实体类,例如:@Entity com.xx.xx.UserModel

2. 生成的表名与预期不符?

MybatisX 根据以下规则确定表名:

  1. 实体类上的 JPA 注解,如:@Table(name="t_user")
  2. 实体类上的 mybatis-plus 注解,如:@TableName("t_user")
  3. 实体类上的注释,如:@TableName com.xx.xx.UserModel
  4. 若以上规则均不满足,则将驼峰命名的类名转换为下划线命名,如:UserModel 对应表名 user_model

五、代码生成模板配置

MybatisX 提供了灵活的模板配置选项,允许开发者根据需要自定义代码生成模板。

1. 默认模板

Scratches and Consoles -> Extensions -> MybatisX 目录下,您可以找到默认提供的模板,如 default-all、default、mybatis-plus2、mybatis-plus3 等。

2. 重置默认模板

如需重置模板到默认设置,右键点击 MybatisX 目录,选择 Restore Default Extensions。

3. 自定义模板内容

MybatisX 允许您根据项目需求自定义模板内容,包括实体类、表名、字段信息等。

3.1 实体类信息

  • tableClass.fullClassName: 类的全限定名。
  • tableClass.shortClassName: 类的简称。
  • tableClass.tableName: 表名。
  • tableClass.pkFields: 表的主键字段。
  • tableClass.allFields: 表的所有字段。
  • tableClass.baseFields: 排除主键和 blob 的所有字段。
  • tableClass.baseBlobFields: 排除主键的所有字段。
  • tableClass.remark: 表注释。

3.2 字段信息

  • field.fieldName: 字段名称。
  • field.columnName: 列名称。
  • field.jdbcType: JDBC 类型。
  • field.columnLength: 列长度。
  • field.columnScale: 列精度。
  • field.columnIsArray: 字段类型是否为数组。
  • field.shortTypeName: Java 类型短名称。
  • field.fullTypeName: Java 类型全限定名。
  • field.remark: 字段注释。
  • field.autoIncrement: 是否自增。
  • field.nullable: 是否允许为空。

3.3 配置信息

  • baseInfo.shortClassName: 配置名称。
  • baseInfo.tableName: 配置文件名称。
  • baseInfo.pkFields: 配置名称。
  • baseInfo.allFields: 后缀。
  • baseInfo.baseFields: 包名。
  • baseInfo.baseBlobFields: 模板内容。
  • baseInfo.remark: 相对模块的资源文件路径。

总结

回到顶部

通过 MybatisX 插件,您可以大幅提升 MyBatis 与 MyBatis-Plus 框架的开发效率,同时享受便捷的代码生成和模板自定义功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/46076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

暑期备考2024小学生古诗文大会:吃透历年真题和知识点(持续)

2024年上海市小学生古诗文大会的自由报名初赛将于10月19日(星期六)正式开始,还有3个多月的时间。 为帮助孩子们备考,我持续分享往年上海小学生古诗文大会真题,这些题目来自我去重、合并后的1700在线题库,每…

Python中的pytest的使用

使用pytest可以做测试 pip 安装 pip install pytest有可能得配置环境变量! 下面代码展示 文件名必须得是 test_ 开头 或者 _test 结尾 import pytestdef add(x, y):return x ydef test1():assert 3 add(1, 2)def test2():assert 2 add(1, 1)if __name__ __ma…

Python中的数据容器及其在大数据开发中的应用

在Python编程中,数据容器是存储和组织数据的基本工具。作为大数据开发者,了解并灵活运用各种容器类型对于高效处理大规模数据至关重要。今天,我们将从Set出发,探讨Python中的各种数据容器,以及它们在大数据处理中的应用…

思维+构造,CF 1059C - Sequence Transformation

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1059C - Sequence Transformation 二、解题报告 1、思路分析 n 1,2,3的情况从样例已知 考虑n > 4的情况 我们考虑要字典序最大,自然要最早出现非1的数,…

springboot+vue 开发记录(九)后端打包部署运行

本篇文章主要内容是后端项目写好了,怎么打包部署到服务器上运行。 文章目录 1. 在服务器上安装Docker2. 在Docker中装MySQL3. 在Docker中设置网桥,实现容器间的网络通信4. 修改后端配置文件5. 修改pom.xml文件6. 打包7. 编写DockerFile文件8. 上传文件到…

Java 如何不用再每次新建线程,直接使用公共线程池

前言 Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 官网:https://www.hutool.cn/ 推荐说明 并发在Java中…

《昇思25天学习打卡营第17天|K近邻算法实现红酒聚类》

K近邻算法原理介绍 K近邻算法(K-Nearest-Neighbor, KNN)是一种用于分类和回归的非参数统计方法,最初由 Cover和Hart于1968年提出是机器学习最基础的算法之一。它正是基于以上思想:要确定一个样本的类别,可以计算它与所…

hot100

哈希 1.两数之和:求数组中两数的和为target,返回下标。用hash,key存数,value存下标,一次遍历,每次判断hash[taget-num]是否存在,存在就返回两个下标。 https://blog.csdn.net/midi666/article/…

WSGI 服务器教程:`full_dispatch_request` 方法解析

Python WSGI 服务器教程:full_dispatch_request 方法解析 在本文中,我们将详细解析一个用于 WSGI 服务器的 full_dispatch_request 方法。这个方法负责处理完整的请求调度,包括请求的前后处理、异常捕获和错误处理。我们将逐行解释该方法的工…

CSS【详解】文本相关样式(含 font 系列样式,文本颜色 color,三种颜色表示法,文本排版-含最佳实战范例,文本装饰,分散对齐,渐变色文本等)

文本风格 font-style font-style:italic 值描述normal默认值。浏览器显示一个标准的字体样式。italic加载对应字体的斜体字体文件,若找不到斜体字体文件,则进行物理上的倾斜。 标签默认font-style:italicoblique浏览器会显示一个倾斜的字体样式。 文本粗…

qt 一个继承object且使用Q_OBJECT宏的类有什么要求

一个继承自QObject且使用Q_OBJECT宏的类在Qt中有以下要求: 继承自QObject: 该类必须直接或间接继承自QObject类。这是使用Qt的信号槽机制、国际化机制以及Qt提供的不基于C RTTI的反射能力的基础。使用Q_OBJECT宏: 在类的定义中,必…

计算机网络——网络层(IP地址与MAC地址、地址解析协议ARP、IP数据报格式以及转发分组、ICMP、IPV6)

IP地址与MAC地址 由于MAC地址已固化在网卡上的ROM 中,因此常常将 MAC地址称为硬件地址或物理地址;物理地址的反义词就是虚拟地址、软件地址或逻辑地址,IP地址就属于这类地址。 从层次的角度看,MAC地址是数据链路层使用的地址&…

内存对齐的定义以及它的重要性

内存对齐是指数据在内存中存储时,按照一定的规则让数据排列在规定的地址上,以提高数据访问的效率和速度。具体来说,内存对齐是计算机体系结构、操作系统和编译器设计等多个层面共同要求的一种数据存储方式。以下是对内存对齐的详细解释以及它…

Java 面试相关问题(上)——基础问题集合问题

这里只会写Java相关的问题,包括Java基础问题、JVM问题、线程问题等。全文所使用图片,部分是自己画的,部分是自己百度的。如果发现雷同图片,联系作者,侵权立删。 1. Java基础面试问题1.1 基本概念相关问题1.1.1 Java语言…

配置Maven并使用IDEA新建一个简单的Springboot项目

一.maven的配置 1.查看电脑上是否配置了maven ①使用快捷键“WinR”打开运行窗口,在窗口中输入cmd,点击确定进入黑色命令窗口 ②在命令行窗口中输入如下命令 mvn -version 如果出现下面的提示则表示该电脑已配置maven,否则需要进行maven配…

systemverilog对象的复制和拷贝

在 SystemVerilog 中,对象的复制分为浅复制(shallow copy)和深复制(deep copy)。 浅复制会将原始对象中的所有属性拷贝到新对象中,包括整数、字符串、句柄等。但是,对于句柄属性,浅复…

汇编程序调用 C 程序详解

文章目录 1. ATPCS 规则 2. 汇编和C程序传递参数 汇编程序向 C 程序的函数传递参数 C 程序返回结果给汇编程序 代码示例 3. C 函数使用栈 4. C 语言中读写寄存器 在嵌入式开发中,经常需要在 C 程序和 ARM 汇编程序之间进行相互调用。为了保证这些调用的正确性…

SpringBoot整合Java Mail实现发送邮件

SpringBoot整合Java Mail实现发送邮件 实现 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>发送邮件配置 这里使用qq邮箱发送邮件&#xff0c;需要…

Leetcode3200. 三角形的最大高度

Every day a Leetcode 题目来源&#xff1a;3200. 三角形的最大高度 解法1&#xff1a;模拟 枚举第一行是红色还是蓝色&#xff0c;再按题意模拟即可。 代码&#xff1a; /** lc appleetcode.cn id3200 langcpp** [3200] 三角形的最大高度*/// lc codestart class Solutio…

java.sql.SQLException: Before start of result set

情况描述&#xff0c;在通过JDBC连接数据库时&#xff0c;想直接判断获取的值是否存在&#xff0c;运行时报错。 翻译&#xff1a; 在开始结果集之前 报错截图 解决问题的方法&#xff1a;对结果集ResultSet进行操作之前&#xff0c;一定要先用ResultSet.next()将指针移动至…