codecamp

MyBatis-Plus 扩展-MybatisX快速开发插件

MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。

安装方法:打开 IDEA,进入 File -> Settings -> Plugins -> Browse Repositories,输入 ​mybatisx搜索并安装。

功能

XML跳转

mybatisx-jump

生成代码(需先在 idea 配置 Database 配置数据源)

mybatisx-generate

重置模板

mybatisx-reset-template

JPA 提示

生成新增

mybatisx-tip-insert

生成查询

mybatisx-tip-select

生成修改

mybatisx-tip-update

生成删除

mybatisx-tip-delete

常见问题

为什么 JPA 不能使用?

JPA 提示的方式需要根据 Mapper 找到实体类, 找到实体类有以下五种方式

  • 继承 ​mybatis-plus​ 的 ​BaseMapper
  • Mapper.xml​ 文件有 ​resultMap标签
  • 在 ​Mapper类上增加注释指定实体类, 例如: ​@Entity com.xx.xx.UserModel

为什么生成的表名和期望的表名不一致

JPA 提示生成代码, 按照以下规则找到表名

  • 实体类有 ​JPA注解, 例如: ​@Table(name="t_user")
  • 实体类有 ​mybais-plus​ 注解, 例如: ​@TableName("t_user")
  • 实体类有注释: ​@TableName com.xx.xx.UserModel
  • 如果不存在以上规则, 将驼峰转下划线. 例如 ​UserMode的表名为: ​user_model

生成代码的模板配置

按照指定目录找到插件模板配置目录 Scratches and Consoles -> Extensions -> MybatisX

这里会提供默认模板: 例如在 1.4.13 提供了模板: ​default-all​,​default​,​mybatis-plus2​,​mybatis-plus3

如果想重置默认模板, 可以右键点击 MybatisX 目录,选择 ​Restore Default Extensions​ 选项

mybatisx-template-setting

自定义模板内容

 名称  含义
 ​tableClass.fullClassName  类的全称(包括包名)
 ​tableClass.shortClassName  类的简称
 ​tableClass.tableName  表名
 ​tableClass.pkFields  表的所有主键字段
 ​tableClass.allFields  表的所有字段
 ​tableClass.baseFields  排除主键和 blob 的所有字段
 ​tableClass.baseBlobFields  排除主键的所有字段
 ​tableClass.remark  表注释

字段信息

 名称  含义
 ​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  是否允许为空

配置信息

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


MyBatis-Plus 扩展-多数据源
MyBatis-Plus 扩展-企业高级特性
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }