Easy Code —— IDEA的 代码自动生成插件
简介:
Easycode是IDEA 的一个插件,类似逆向工程一样,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。绿色,无公害!哈哈(无侵入)
前提:
因为生成模板中有lombok、swagger注解、所以需要引入相关依赖、已经安装过lombok插件。
1、Easy Code插件安装
2、IDEA 配置连接数据库
3、设置Easy Code 生成模板 –添加lombok、swagger
1、添加模板,如下
2、entity.java 生成实体模板
##引入宏定义
$!define##使用宏定义设置回调(保存位置与文件后缀)
#save("/entity", ".java")##使用宏定义设置包后缀
#setPackageSuffix("entity")##使用全局变量实现默认包导入
$!autoImport
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/*** @author: $!author* @date: $!time.currTime()* @description: $!{tableInfo.comment}($!{tableInfo.name})实体类*/
@Data
@NoArgsConstructor
@ApiModel("#if($!{tableInfo.comment})$!{tableInfo.comment}实体类#end")
public class $!{tableInfo.name} implements Serializable {private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)@ApiModelProperty("#if(${column.comment})${column.comment}#end")private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end}
3、dao.java 模板文件
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Mapper"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/mapper"))##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())#set($pk = $tableInfo.pkColumn.get(0))
#end#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}mapper;import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;/*** @author: $!author* @date: $!time.currTime()* @description: $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层*/
@Mapper
public interface $!{tableName} {/*** 通过ID查询单条数据** @param $!pk.name 主键* @return 实例对象*/$!{tableInfo.name} queryById($!pk.shortType $!pk.name);/*** 查询指定行数据** @param offset 查询起始位置* @param limit 查询条数* @return 对象列表*/List<$!{tableInfo.name}> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);/*** 通过实体作为筛选条件查询** @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象* @return 对象列表*/List<$!{tableInfo.name}> queryAll($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));/*** 新增数据** @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象* @return 影响行数*/int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));/*** 批量新增数据(MyBatis原生foreach方法)** @param entities List<$!{tableInfo.name}> 实例对象列表* @return 影响行数*/int insertBatch(@Param("entities") List<$!{tableInfo.name}> entities);/*** 批量新增或按主键更新数据(MyBatis原生foreach方法)** @param entities List<$!{tableInfo.name}> 实例对象列表* @return 影响行数*/int insertOrUpdateBatch(@Param("entities") List<$!{tableInfo.name}> entities);/*** 修改数据** @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象* @return 影响行数*/int update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));/*** 通过主键删除数据** @param $!pk.name 主键* @return 影响行数*/int deleteById($