手记系列之二 ----- 关于IDEA的一些使用方法经验( 三 )


EasyCode代码生成模板注:这是我在开发某个项目使用的模板,并非通用所有项目,仅做参考 。EasyCode官方自带有一套模板,初学者可以使用这套 , 熟悉之后可以在进行自定义 。
Easy Code介绍:?基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml) 。
?只要是与数据库相关的代码都可以通过自定义模板来生成 。支持数据库类型与java类型映射关系配置 。
?支持同时生成生成多张表的代码 。每张表有独立的配置信息 。完全的个性化定义,规则由你设置
路径: File -> Settings->Plugins
输入: /vendor:"Easy Code Office Website" 进行搜索然后进安装 。
安装完成之后需要重启IEDA 。

手记系列之二 ----- 关于IDEA的一些使用方法经验

文章插图
插件安装之后建议先设置作者
路径:File -> Settings->Other Setting
示例图:
手记系列之二 ----- 关于IDEA的一些使用方法经验

文章插图
自定义模板设置设置完作者之后,点击Template Setting,然后点击右边的+,创建一个分组名称,这个名称随意,不重复就行,这里就设置MyGroup,然后点击左边的+号进行添加模板:
手记系列之二 ----- 关于IDEA的一些使用方法经验

文章插图
1.dao模板
PowerShell##定义初始变量#set($tableName = $tool.append($tableInfo.name, "Dao"))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/dao"))##拿到主键#if(!$tableInfo.pkColumn.isEmpty())#set($pk = $tableInfo.pkColumn.get(0))#end#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}dao;import $!{tableInfo.savePackageName}.model.$!{tableInfo.name};import $!{tableInfo.savePackageName}.vo.$!{tableInfo.name}VO;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Mapper;import java.util.List; /*** @Title: $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层* @Description: * @Version:1.0.0 * @Since:jdk1.8 * @author $author* @date $!time.currTime()*/@Mapperpublic interface $!{tableName} {/*** 通过ID查询单条数据** @param $!pk.name 主键* @return 实例对象*/$!{tableInfo.name}VO queryById($!pk.shortType $!pk.name);/*** 通过实体查询一条数据** @param $!tool.firstLowerCase($!{tableInfo.name})VO 实例对象* @return 对象列表*/$!{tableInfo.name}VO findOne($!{tableInfo.name}VO $!tool.firstLowerCase($!{tableInfo.name})VO);/*** 通过实体作为筛选条件查询** @param $!tool.firstLowerCase($!{tableInfo.name})VO 实例对象* @return 对象列表*/List<$!{tableInfo.name}VO> queryAll($!{tableInfo.name}VO $!tool.firstLowerCase($!{tableInfo.name})VO);/*** 新增数据** @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($!pk.shortType $!pk.name);}2.entity模板
Kotlin##引入宏定义$!define#set($tableName = $tool.append($tableInfo.name, "VO"))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/vo"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}vo;##使用全局变量实现默认包导入$!autoImportimport java.io.Serializable;import com.alibaba.fastjson.JSONObject;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;/*** @Title: $!{tableInfo.comment}($!{tableInfo.name})请求响应对象* @Description: * @Version:1.0.0 * @Since:jdk1.8 * @author $author* @date $!time.currTime()*/@ApiModel(value = "https://www.huyubaike.com/biancheng/$!{tableInfo.name}", description = "$!{tableInfo.comment}")@Datapublic class$!{tableInfo.name}VO extends BasePage implements Serializable{private static final long serialVersionUID = $!tool.serial();#foreach($column in $tableInfo.fullColumn)#if(${column.comment})/*** ${column.comment}*/#end@ApiModelProperty(value = "https://www.huyubaike.com/biancheng/${column.comment}")private $!{tool.getClsNameByFullName($column.type)} $!{column.name};#end@Overridepublic String toString(){return JSONObject.toJSONString(this);}}

推荐阅读