idea中Easy Code模版配置

首先找到模版位置

在这里插入图片描述

找到使用的模版,我用的是MybatisPlus-H,这是我新建的一个模版

controller.java.vm模版

##导入宏定义
$!{define.vm}##设置表后缀(宏定义)
#setTableSuffix("Controller")##保存文件(宏定义)
#save("/controller", "Controller.java")##包路径(宏定义)
#setPackageSuffix("controller")##定义服务名
#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;
import java.util.List;
import com.hao.utils.AjaxJson;
import java.lang.String;##表注释(宏定义)
#tableComment("表控制层")
@RestController
@RequestMapping("$!tool.firstLowerCase($!tableInfo.name)")
public class $!{tableName} {/*** 服务对象*/@Resourceprivate $!{tableInfo.name}Service $!{serviceName};/*** 分页查询所有数据** @param $!entityName 查询实体* @return 所有数据*/@RequestMappingpublic AjaxJson getPage(@RequestBody $!tableInfo.name $!entityName) {return AjaxJson.getSuccessData(this.$!{serviceName}.getPage($!entityName));}/*** 通过主键查询单条数据** @return 单条数据*/@RequestMappingpublic AjaxJson selectOne(@RequestBody $!tableInfo.name $!entityName) {return AjaxJson.getSuccessData(this.$!{serviceName}.selectOne($!entityName));}/*** 新增数据** @param $!entityName 实体对象* @return 新增结果*/@RequestMapping("addOne")public AjaxJson addOne(@RequestBody $!tableInfo.name $!entityName) {return AjaxJson.getSuccessData(this.$!{serviceName}.save($!entityName));}/*** 修改数据** @param $!entityName 实体对象* @return 修改结果*/@RequestMapping("updateOne")public AjaxJson updateOne(@RequestBody $!tableInfo.name $!entityName) {return AjaxJson.getSuccessData(this.$!{serviceName}.updateOne($!entityName));}/*** 删除数据** @param idList 主键结合* @return 删除结果*/@RequestMapping("deleteOne")public AjaxJson deleteOne(@RequestBody List<String> idList) {this.$!{serviceName}.removeByIds(idList);return AjaxJson.getSuccess();}
}

dao.java.vm模版

##导入宏定义
$!{define.vm}##设置表后缀(宏定义)
#setTableSuffix("Dao")##保存文件(宏定义)
#save("/dao", "Dao.java")##包路径(宏定义)
#setPackageSuffix("dao")import java.util.List;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
import com.baomidou.mybatisplus.core.metadata.IPage;##表注释(宏定义)
#tableComment("表数据库访问层")
public interface $!{tableName} extends BaseMapper<$!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 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
*/
int insertOrUpdateBatch(@Param("entities") List<$!{tableInfo.name}> entities);IPage<$!{tableInfo.name}> getPage(IPage<$!tableInfo.name> page,$!tableInfo.name body);$!{tableInfo.name} selectOne($!tableInfo.name body);
}

entity.java.vm模版

##导入宏定义
$!{define.vm}##保存文件(宏定义)
#save("/entity", ".java")##包路径(宏定义)
#setPackageSuffix("entity")##自动导入包(全局变量)
$!autoImportimport java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableName;import com.hao.utils.*;
import lombok.Data;##表注释(宏定义)
#tableComment("表实体类")
@Data
@TableName("$!{tableInfo.obj.name}")
public class $!{tableInfo.name} extends SuperModel {
#foreach($column in $tableInfo.fullColumn)#if(${column.name} != "createTime" && ${column.name} != "updateTime"  && ${column.name} != "isDelete")#if(${column.comment})//${column.comment}#endprivate $!{tool.getClsNameByFullName($column.type)} $!{column.name};#end
#end}

mapper.xml.vm模版

##引入mybatis支持
$!{mybatisSupport.vm}##设置保存名称与保存位置
$!callback.setFileName($tool.append($!{tableInfo.name}, "Dao.xml"))
$!callback.setSavePath($tool.append($modulePath, "/src/main/resources/mapper"))##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())#set($pk = $tableInfo.pkColumn.get(0))
#end<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="$!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao"><resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map">
#foreach($column in $tableInfo.fullColumn)<result property="$!column.name" column="$!column.obj.name" jdbcType="$!column.ext.jdbcType"/>
#end</resultMap><!-- 批量插入 --><insert id="insertBatch" keyProperty="$!pk.name" useGeneratedKeys="true">insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)values<foreach collection="entities" item="entity" separator=",">(#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)</foreach></insert><!-- 批量插入或按主键更新 --><insert id="insertOrUpdateBatch" keyProperty="$!pk.name" useGeneratedKeys="true">insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)values<foreach collection="entities" item="entity" separator=",">(#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)</foreach>on duplicate key update#foreach($column in $tableInfo.otherColumn)$!column.obj.name = values($!column.obj.name) #if($velocityHasNext), #end#end</insert><select id="getPage" resultMap = "$!{tableInfo.name}Map">SELECT* FROM$!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} WHEREis_delete = 0</select><select id="selectOne" resultMap = "$!{tableInfo.name}Map">SELECT* FROM$!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} WHEREis_delete = 0 AND id = #{body.id}</select></mapper>

service.java.vm模版

##导入宏定义
$!{define.vm}##设置表后缀(宏定义)
#setTableSuffix("Service")##保存文件(宏定义)
#save("/service", "Service.java")##包路径(宏定义)
#setPackageSuffix("service")##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))import com.baomidou.mybatisplus.extension.service.IService;
import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
import java.util.List;##表注释(宏定义)
#tableComment("表服务接口")
public interface $!{tableName} extends IService<$!tableInfo.name> {Object getPage($!tableInfo.name $!entityName);Object addOne($!tableInfo.name $!entityName);Object updateOne($!tableInfo.name $!entityName);Object selectOne($!tableInfo.name $!entityName);void removeByIds(List<String> idList);}

serviceImpl.java.vm模版

##导入宏定义
$!{define.vm}##设置表后缀(宏定义)
#setTableSuffix("ServiceImpl")##保存文件(宏定义)
#save("/service/impl", "ServiceImpl.java")##包路径(宏定义)
#setPackageSuffix("service.impl")##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao;
import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import java.util.List;##表注释(宏定义)
#tableComment("表服务实现类")
@Service("$!tool.firstLowerCase($tableInfo.name)Service")
public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Dao, $!{tableInfo.name}> implements $!{tableInfo.name}Service {public Object getPage($!tableInfo.name $!entityName){IPage<$!tableInfo.name> page = new Page<$!tableInfo.name>();IPage<$!tableInfo.name> data = this.baseMapper.getPage(page,$!entityName);return data;
}public Object addOne($!tableInfo.name $!entityName){save($!entityName);return $!entityName;   
}public Object updateOne($!tableInfo.name $!entityName){updateById($!entityName);return $!entityName;   
}public Object selectOne($!tableInfo.name $!entityName){$!tableInfo.name one = this.baseMapper.selectOne($!entityName);return one;
}public void removeByIds(List<String> idList){removeByIds(idList);
}}

语法规范

说明文档:属性$author 设置中的作者 java.lang.String$modulePath 选中的module路径 java.lang.String$projectPath 项目绝对路径 java.lang.String对象$tableInfo 表对象obj 表原始对象 com.intellij.database.model.DasTablepreName 表前缀 java.lang.Stringname 表名(转换后的首字母大写)java.lang.Stringcomment 表注释 java.lang.StringfullColumn 所有列 java.util.List<ColumnInfo>pkColumn 主键列 java.util.List<ColumnInfo>otherColumn 其他列 java.util.List<ColumnInfo>,除主键以外的列savePackageName 保存的包名 java.lang.StringsavePath 保存路径 java.lang.StringsaveModelName 保存的model名称 java.lang.StringcolumnInfo 列对象obj 列原始对象 com.intellij.database.model.DasColumnname 列名(首字母小写) java.lang.Stringcomment 列注释 java.lang.Stringtype 列类型(类型全名) java.lang.StringshortType 列类型(短类型) java.lang.Stringcustom 是否附加列 java.lang.Booleanext 附加字段(Map类型) java.lang.Map<java.lang.String, java.lang.Object>$tableInfoList java.util.List<TableInfo>所有选中的表$importList 所有需要导入的包集合 java.util.Set<java.lang.String>回调&callback 回调对象setFileName(String) 设置文件储存名字setSavePath(String) 设置文件储存路径,默认使用选中路径setReformat(Boolean) 设置是否重新格式化生成后的代码,默认为界面选定值setWriteFile(Boolean) 设置是否生成文件,默认为true工具$toolfirstUpperCase(String name) 首字母大写方法firstLowerCase(String name) 首字母小写方法getClsNameByFullName(String fullName) 通过包全名获取类名getJavaName(String name) 将下划线分割字符串转驼峰命名(属性名)getClassName(String name) 将下划线分割字符串转驼峰命名(类名)hump2Underline(String str) 将驼峰字符串转下划线字符串append(Object... objs) 多个数据进行拼接newHashSet(Object... objs) 创建一个HashSet对象newArrayList(Object... objs) 创建一个ArrayList对象newLinkedHashMap() 创建一个LinkedHashMap()对象newHashMap() 创建一个HashMap()对象getField(Object obj, String fieldName) 获取对象的属性值,可以访问任意修饰符修饰的属性.配合debug方法使用.call(Object... objs) 空白执行方法,用于调用某些方法时消除返回值debug(Object obj) 调式方法,用于查询对象结构.可查看对象所有属性与public方法serial() 随机获取序列化的UIDservice(String serviceName, Object... param)远程服务调用parseJson(String) 将字符串转Map对象toJson(Object, Boolean) 将对象转json对象,Boolean:是否格式化json,不填时为不格式化。toUnicode(String, Boolean) 将String转换为unicode形式,Boolean:是否转换所有符号,不填时只转换中文及中文符号。$timecurrTime(String format) 获取当前时间,指定时间格式(默认:yyyy-MM-dd HH:mm:ss)$generateServicerun(String, Map<String,Object>) 代码生成服务,参数1:模板名称,参数2:附加参数。$dasUtil Database提供的工具类,具体可方法请查看源码,适用于高端玩家$dasUtil.$dbUtil  Database提供的工具类,具体可方法请查看源码,适用于高端玩家

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/7354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qemu搭建arm环境以及文件共享

几乎完全参照该文章 使用QEMU搭建ARM64实验环境 - 简书 ubuntu 14.04&#xff0c;linux3.16&#xff0c; busybox-1.31.0 arm-linux-gnueabi-gcc -v linux3.16以及busybox下载安装可参考链接 Ubuntu14.04安装qemu&#xff0c;运行linux-3.16gdb调试_qemu 安装 ubuntu 14_这个我…

【数学建模】相关是一个距离指标吗?

一、说明 本文探讨最平凡的数学模型--距离模型。我们知道&#xff0c;任何数学模型如果是个距离模型&#xff0c;那么它是&#xff1a;放心的、自动的、不加任意条件的指标项目。然而另一些度量参数不是距离空间&#xff0c;因此&#xff0c;使用起来必须外加若干条件&#xff…

一款好用的思维导图软件drawio

最近需要画思维导图&#xff0c;结果发现既然被人用来收费了。所以记录一下&#xff0c;免得大家上当。 首先说明&#xff0c;这个东东在github上是免费开源的&#xff0c;收费的是一些不法分子搞得。下面是收费版本得界面。 开源地址&#xff1a; https://github.com/jgraph…

JUC并发编程之CompletableFuture详解

目录 1.Future接口 1.1 Future介绍 1.1.1 FutureTask 1.1.2 代码示例 2. CompletableFuture 2.1 基本概念 2.2 代码示例 2.2.1 创建CompletableFuture 2.2.2 函数式接口&#xff08;补充&#xff09; 2.2.3 异步任务组合 1.Future接口 1.1 Future介绍 JUC并发编程中的…

二叉树题目:从根到叶的二进制数之和

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;从根到叶的二进制数之和 出处&#xff1a;1022. 从根到叶的二进制数之和 难度 3 级 题目描述 要求 给你二叉树…

Git标签管理(对版本打标签,起别名)

tag 理解标签创建标签git tag [name]git show [tagname] 操作标签删除标签git tag -d < tagname > 推送某个标签到远程git push origin < tagname > 理解标签 标签 tag &#xff0c;可以简单的理解为是对某次 commit 的⼀个标识&#xff0c;相当于起了⼀个别名。 …

C# winform子窗口向父窗口传值

这里我使用一个简单的方法。只需要在父窗口定义一个静态变量就行。 父窗体为Form1,子窗体为Form2。 public static int get_num0; 子窗体直接给get_num赋值即可。 Form1.get_num2; 这样父窗体就能获得get_num修改后这个值了

游戏引擎UE如何革新影视行业?创意云全面支持UE云渲染

虚幻引擎UE&#xff08;Unreal Engine&#xff09;作为一款“殿堂级”的游戏引擎&#xff0c;占据了全球80%的商用游戏引擎市场&#xff0c;但如果仅仅将其当做游戏开发的工具&#xff0c;显然是低估了它的能力。比如迪士尼出品的电视剧《曼达洛人》、电影《狮子王》等等都使用…

Matlab 点云曲面特征提取

文章目录 一、简介二、实现代码2.1基于k个邻近点2.2基于邻近半径参考资料一、简介 这里基于每个点的邻域协方差来获取点云中具有的曲面几何特征的点,计算方式如下图所示: 二、实现代码 2.1基于k个邻近点 SurfaceVar.m %% *******</

【网络代理】(三)Docker+Haproxy 搭建四层代理

目录 1.1 创建 web 服务器镜像 1.2 启动 web 服务器容器 2.1 编写 haproxy 配置文件 2.2 拉取 haproxy 镜像 2.3 启动 haproxy 容器 3.1 访问 8000 端口 3.2 查看 web 服务器容器日志 附录&#xff1a;haproxy 仪表板 1.1 创建 web 服务器镜像 编写一个 Docke…

uniapp实战

上面是tab栏&#xff0c;下面是swiper&#xff0c;&#xff0c;tab和swiper和 红色滑块 动态变化&#xff0c;&#xff0c; 遇到的问题&#xff1a; 往下滚动 tab栏 吸顶&#xff1a; position:sticky; z-index:99; top:0;swiper切换触发 change 事件&#xff0c; :current …

Golang GORM 模型定义

模型定义 参考文档&#xff1a;https://gorm.io/zh_CN/docs/models.html 模型一般都是普通的 Golang 的结构体&#xff0c;Go的基本数据类型&#xff0c;或者指针。 模型是标准的struct,由Go的基本数据类型、实现了Scanner和Valuer接口的自定义类型及其指针或别名组成&#x…

Android TelephonyManager双卡获取数据开启状态异常的可能原因

背景 应用内不指定subId获取数据状态可能会错误&#xff0c;因为可能拿到voice的能力&#xff0c;而非data。 代码逻辑 1、通过TelephonyManager的isDataEnabled()没有指定subId时&#xff0c;调用内部方法isDataEnabledForReason&#xff0c;传入getId()参数以指定subid&am…

FUNBOX_SCRIPTKIDDIE靶机详解

FUNBOX_SCRIPTKIDDIE靶机复盘 这个靶场给了太多的干扰因素&#xff0c;当你打完后反过来再看是非常简单的一个靶场&#xff0c;但是你打的过程中却会觉得非常难&#xff0c;干扰因素实在天多了。 题目中给了说加一条hosts&#xff0c;实际没用上。 对IP进行一个单独扫描后发现…

机器学习深度学习——torch.nn模块

机器学习&&深度学习——torch.nn模块 卷积层池化层激活函数循环层全连接层 torch.nn模块包含着torch已经准备好的层&#xff0c;方便使用者调用构建网络。 卷积层 卷积就是输入和卷积核之间的内积运算&#xff0c;如下图&#xff1a; 容易发现&#xff0c;卷积神经网…

uniapp 微信小程序 placeholder字体、颜色自定义

效果图&#xff1a; 1、template <input type"text" placeholder"搜索标题" placeholder-class"placeholder-style"></input>2、style .placeholder-style{color: #2D94FF; }

微服务探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka

1 安装Redis 1.1创建配置文件redis.conf 切换到自己的目录下如本文是放在/home/ubuntu下 cd /home/ubuntuvim redis.conf bind 0.0.0.0 protected-mode yes port 6379 requirepass qwe123456 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no pidfile /var/run/r…

生产者消费者模型

生产者消费者模型 文章目录 生产者消费者模型概念原则优点 基于BlockingQueue的生产者消费者模型BlockingQueue模拟实现单生产者消费者模型基于计算任务和存储任务的生产者消费者模型 概念 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题生产者和消费者彼…

代码随想录| 图论02●695岛屿最大面积 ●1020飞地的数量 ●130被围绕的区域 ●417太平洋大西洋水流问题

#695岛屿最大面积 模板题&#xff0c;很快.以下两种dfs&#xff0c;区别是看第一个点放不放到dfs函数中处理&#xff0c;那么初始化的area一个是1一个是0 int dir[4][2]{0,1,0,-1,1,0,-1,0};void dfs(int x, int y,int n, int m, int &area,vector<vector<bool>…

2023最新谷粒商城笔记之Sentinel概述篇(全文总共13万字,超详细)

Sentinel概述 服务流控、熔断和降级 什么是熔断 当扇出链路的某个微服务不可用或者响应时间太长时&#xff0c;会进行服务的降级&#xff0c;**进而熔断该节点微服务的调用&#xff0c;快速返回错误的响应信息。**检测到该节点微服务调用响应正常后恢复调用链路。A服务调用B服…