EasyCode 插件
EasyCode 插件 是一款根据表结构生成代码的很方便的Idea插件, 强烈推荐. 并且可以自定义模板来控制生成的类
我在使用的过程中发现一些问题,现在把解决办法记录下来, 我主要使用的是插件自带的mybatisplus模板
1. 生成的代码中有大量的get set方法
lombok 插件是个好东西, 我删除了模板中的get和set方法, 添加了lombok 的注解, '
2. 如果数据库中的表都有前缀"t_" 导致生成的类名中都有一个前缀 “T”
这个问题困扰我很久,改了各种模板 , 最后发现把init文件的第一行代码复制到define文件的第一行就可以, init文件根本就没有用.
3, 生成的类中没有DTO对象
直接把entity模板文件复制一份改改就有了
下面分享下我修改后的模板
Template Setting 配置项 Group Name : MybatisPlus
如果没有MybatisPlus 的group name, 可以新增一个
dto文件
##导入宏定义
$!define
##保存文件(宏定义)
#save("/dto", "DTO.java")
##包路径(宏定义)
#setPackageSuffix("dto")
##自动导入包(全局变量)
$!autoImport
##import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import lombok.Data;
##import com.baomidou.mybatisplus.annotation.IdType;
##import com.baomidou.mybatisplus.annotation.TableId;
##表注释(宏定义)
#tableComment("表实体类")
@Data
@SuppressWarnings("serial")
public class $!{tableInfo.name}DTO implements Serializable {
#foreach($column in $tableInfo.fullColumn)
#if(${column.comment})/**${column.comment}*/#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
###foreach($column in $tableInfo.fullColumn)
## #getSetMethod($column)
###end
###foreach($column in $tableInfo.pkColumn)
## /**
## * 获取主键值
## *
## * @return 主键值
## */
## @Override
## protected Serializable pkVal() {
## return this.$!column.name;
## }
## #break
###end
}
controller 文件
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("Controller")
##保存文件(宏定义)
#save("/controller", "Controller.java")
##包路径(宏定义)
#setPackageSuffix("controller")
##定义服务名
#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))
##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.ApiController;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import $!{tableInfo.savePackageName}.ent