快速生成项目所需代码。官方链接

安装

Snipaste_2021-12-29_18-20-29.png
安装完后,重新启动IDEA生效。

模板配置

选择MybatisPlus作为模板,点击下图2步骤会弹出对话框,起个自己喜爱的名字
Snipaste_2021-12-29_20-47-19.png
对下面模板文件进行配置
image.png

entity.java.vm

  1. ##导入宏定义
  2. $!{define.vm}
  3. ##保存文件(宏定义),生成哪个文件夹里面
  4. #save("/pojo/po", ".java")
  5. ##包路径(宏定义),生成文件所在的包名
  6. #setPackageSuffix("pojo.po")
  7. ##自动导入包(全局变量)
  8. $!{autoImport.vm}
  9. import lombok.Data;
  10. @Data
  11. public class $!{tableInfo.name}{
  12. #foreach($column in $tableInfo.fullColumn)
  13. #if(${column.comment})//${column.comment}#end
  14. private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
  15. #end
  16. }

dao.java.vm

  1. ##导入宏定义
  2. $!{define.vm}
  3. ##设置表后缀(宏定义)
  4. #setTableSuffix("Mapper")
  5. ##保存文件(宏定义)
  6. #save("/Mapper", "Mapper.java")
  7. ##包路径(宏定义)
  8. #setPackageSuffix("mapper")
  9. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  10. import $!{tableInfo.savePackageName}.pojo.po.$!tableInfo.name;
  11. public interface $!{tableName} extends BaseMapper<$!tableInfo.name> {
  12. }

service.java.vm

  1. ##导入宏定义
  2. $!{define.vm}
  3. ##设置表后缀(宏定义)
  4. #setTableSuffix("Service")
  5. ##保存文件(宏定义)
  6. #save("/service", "Service.java")
  7. ##包路径(宏定义)
  8. #setPackageSuffix("service")
  9. import com.baomidou.mybatisplus.extension.service.IService;
  10. import $!{tableInfo.savePackageName}.pojo.po.$!tableInfo.name;
  11. public interface $!{tableName} extends IService<$!tableInfo.name> {
  12. }

serviceImpl.java.vm

  1. ##导入宏定义
  2. $!{define.vm}
  3. ##设置表后缀(宏定义)
  4. #setTableSuffix("ServiceImpl")
  5. ##保存文件(宏定义)
  6. #save("/service/impl", "ServiceImpl.java")
  7. ##包路径(宏定义)
  8. #setPackageSuffix("service.impl")
  9. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  10. import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;
  11. import $!{tableInfo.savePackageName}.pojo.po.$!{tableInfo.name};
  12. import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Transactional;
  15. @Service
  16. @Transactional
  17. public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> implements $!{tableInfo.name}Service {
  18. }

controller.java.vm

  1. ##导入宏定义
  2. $!{define.vm}
  3. ##设置表后缀(宏定义)
  4. #setTableSuffix("Controller")
  5. ##保存文件(宏定义)
  6. #save("/controller", "Controller.java")
  7. ##包路径(宏定义)
  8. #setPackageSuffix("controller")
  9. ##定义服务名
  10. #set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))
  11. ##定义实体对象名
  12. #set($entityName = $!tool.firstLowerCase($!tableInfo.name))
  13. import $!{tableInfo.savePackageName}.pojo.po.$!tableInfo.name;
  14. import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
  15. import org.springframework.web.bind.annotation.*;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. @RestController
  18. @RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)s")
  19. public class $!{tableName} {
  20. @Autowired
  21. private $!{tableInfo.name}Service service;
  22. }

Type Mapper配置

数据库字段映射到Java字段的类型需要做配置的,默认只配置了如下内容
image.png
我们还需进行如下配置,这样映射字段类型会更加全一些

bigint(\(\d+\))? unsigned java.math.BigInteger
int(\(\d+\))? unsigned java.lang.Long
mediumint(\(\d+\))? unsigned java.lang.Integer
mediumint(\(\d+\))? java.lang.Integer
smallint(\(\d+\))? unsigned java.lang.Integer
smallint(\(\d+\))? java.lang.Short
tinyint(\(\d+\))? java.lang.Byte
tinyint(\(\d+\))? unsigned java.lang.Short

((\d+))?为正则表达式。数据库字段类型可能是这样的int(4)
()?括号表示一个整体,?表示一次或者0次。(为转义