idea中Easy Code模版配置

这篇具有很好参考价值的文章主要介绍了idea中Easy Code模版配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先找到模版位置

idea中Easy Code模版配置,intellij-idea,java,ide

找到使用的模版,我用的是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} {

    /**
     * 服务对象
     */
    @Resource
    private $!{tableInfo.name}Service $!{serviceName};

    /**
     * 分页查询所有数据
     *
     * @param $!entityName 查询实体
     * @return 所有数据
     */
    @RequestMapping
    public AjaxJson getPage(@RequestBody $!tableInfo.name $!entityName) {
        return AjaxJson.getSuccessData(this.$!{serviceName}.getPage($!entityName));
    }

    /**
     * 通过主键查询单条数据
     *
     * @return 单条数据
     */
    @RequestMapping
    public 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")

##自动导入包(全局变量)
$!autoImport

import 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}#end

     private $!{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} 
        WHERE
            is_delete = 0
    </select>
    
    <select id="selectOne" resultMap = "$!{tableInfo.name}Map">
          SELECT
            * 
        FROM
            $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} 
        WHERE
            is_delete = 0 AND id = #{body.id}
    </select>

</mapper>

service.java.vm模版文章来源地址https://www.toymoban.com/news/detail-605342.html

##导入宏定义
$!{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.DasTable
        preName 表前缀 java.lang.String
        name 表名(转换后的首字母大写)java.lang.String
        comment 表注释 java.lang.String
        fullColumn 所有列 java.util.List<ColumnInfo>
        pkColumn 主键列 java.util.List<ColumnInfo>
        otherColumn 其他列 java.util.List<ColumnInfo>,除主键以外的列
        savePackageName 保存的包名 java.lang.String
        savePath 保存路径 java.lang.String
        saveModelName 保存的model名称 java.lang.String
    columnInfo 列对象
        obj 列原始对象 com.intellij.database.model.DasColumn
        name 列名(首字母小写) java.lang.String
        comment 列注释 java.lang.String
        type 列类型(类型全名) java.lang.String
        shortType 列类型(短类型) java.lang.String
        custom 是否附加列 java.lang.Boolean
        ext 附加字段(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
    工具
    $tool
        firstUpperCase(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() 随机获取序列化的UID
        service(String serviceName, Object... param)远程服务调用
        parseJson(String) 将字符串转Map对象
        toJson(Object, Boolean) 将对象转json对象,Boolean:是否格式化json,不填时为不格式化。
        toUnicode(String, Boolean) 将String转换为unicode形式,Boolean:是否转换所有符号,不填时只转换中文及中文符号。
    $time
        currTime(String format) 获取当前时间,指定时间格式(默认:yyyy-MM-dd HH:mm:ss)
    $generateService
        run(String, Map<String,Object>) 代码生成服务,参数1:模板名称,参数2:附加参数。
    $dasUtil Database提供的工具类,具体可方法请查看源码,适用于高端玩家
        $dasUtil.
    $dbUtil  Database提供的工具类,具体可方法请查看源码,适用于高端玩家

到了这里,关于idea中Easy Code模版配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Intellij-idea 如何编译maven工程

    在 IntelliJ IDEA 中编译 Maven 工程是一个相对直接的过程。以下是基本步骤: 1. 打开或导入 Maven 项目 如果您已经有一个现有的 Maven 项目,可以直接在 IntelliJ IDEA 中打开它。选择 File Open,然后浏览到您的 Maven 项目文件夹,选择包含 pom.xml 的目录。 如果您是从现有的源代码导入

    2024年01月25日
    浏览(73)
  • 如何在Intellij-idea如何编译maven工程

    在 IntelliJ IDEA 中编译 Maven 工程,你需要遵循以下步骤: 打开 IntelliJ IDEA :首先,启动 IntelliJ IDEA。 打开 Maven 项目 :在欢迎界面上,选择 \\\"Get from Version Control\\\",然后选择你的 Maven 项目的仓库地址。或者,如果你已经有了项目文件(如  .idea  和  pom.xml ),你可以直接打开这

    2024年01月18日
    浏览(89)
  • 【操作宝典】IDE神器解密:IntelliJ IDEA详细教程,Java编程进阶指南!

    目录 🛸1. 新建Java项目 🛸2. 运行Java程序 🛸3. 创建springboot项目 方法一 导入jar包 ​编辑方法二 maven的安装配置 🛸4. 创建Vue项目 ​编辑4.1 配置node.js ​编辑4.2 idea运行 文件--新建--项目 JAVA模型--JDK 注意: 程序放在src里面 xxx.java则创建的类名只能为xxx 示例程序Hello.java 建议使

    2024年02月05日
    浏览(50)
  • IntelliJ IDEA插件——可用的IDE Eval Reset

    IDEA版本说明: 如果你是最新版本或者比 2021.2.2 版本高的话,就可能存在失效或者不可用的情况,可以尝试降低版本使用。 在 idea- settings- plugins 里搜索 IDE Eval Reset (注意:是在Marketplace栏目下搜索,Installedl栏目下是你已经安装好的插件),然后点击 Install 进行安装,安装完

    2024年02月07日
    浏览(46)
  • Eclipse、IntelliJ IDEA、PyCharm三种IDE的区别

    Eclipse、IntelliJ IDEA和PyCharm是三种流行的集成开发环境(IDE),每个都有其特性和优点。 1.Eclipse:Eclipse是一款开源的Java IDE,由Eclipse基金会开发。它具有许多功能,包括代码自动完成、调试、源代码控制等。另外,Eclipse有许多插件可以安装,以扩展其功能。它的优点包括免费

    2024年01月22日
    浏览(49)
  • IntelliJ IDEA插件IDE Eval Reset怎么有效试用

    IDEA版本说明: 如果你是最新版本或者比 2021.2.2 版本高的话,就可能存在失效或者不可用的情况,可以尝试降低版本使用。 在 idea- settings- plugins 里搜索 IDE Eval Reset (注意:是在Marketplace栏目下搜索,Installedl栏目下是你已经安装好的插件),然后点击 Install 进行安装,安装完

    2024年01月16日
    浏览(50)
  • 在IntelliJ IDEA IDE中添加jar包的步骤

    在IntelliJ IDEA IDE中添加jar包的步骤如下: 打开IntelliJ IDEA,打开需要添加jar包的项目。 在IntelliJ IDEA右侧的项目导航器中,找到项目。 右键单击项目,选择\\\"Open Module Settings\\\"(也可以使用快捷键F4)。 在弹出的\\\"Project Structure\\\"窗口中,选择\\\"Modules\\\"。 在\\\"Modules\\\"选项卡中,选择模块。

    2024年02月06日
    浏览(41)
  • IntelliJ IDEA 2021版本可用的IDE Eval Reset插件

    IDEA版本说明: 如果你是最新版本或者比 2021.2.2 版本高的话,就可能存在失效或者不可用的情况,可以尝试降低版本使用。 在 idea- settings- plugins 里搜索 IDE Eval Reset (注意:是在Marketplace栏目下搜索,Installedl栏目下是你已经安装好的插件),然后点击 Install 进行安装,安装完

    2024年02月14日
    浏览(50)
  • IntelliJ IDEA 2023.1中新的UI增强,加强了IDE编码体验!

    IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 去年,官方宣布将彻底改变I

    2024年02月09日
    浏览(48)
  • Qodana & IntelliJ IDEA,看代码质量平台如何简化IDE本地化!

    IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 当程序员规划涉及代码重构的

    2024年02月05日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包