idea自动生成代码插件EasyCode 篇二

简介: idea自动生成代码插件EasyCode介绍第二篇

上一篇说了EasyCode的使用,这一篇记录一下常用的代码模板。


entity
使用了lombok插件,需要添加lombok.Data引用

##引入宏定义
$!define

##使用宏定义设置回调(保存位置与文件后缀)
#save("/entity", ".java")

##使用宏定义设置包后缀
#setPackageSuffix("entity")

##使用全局变量实现默认包导入
$!autoImport
import java.io.Serializable;
import lombok.Data;

##使用宏定义实现类注释信息
#tableComment("实体类")
@Data
public class $!{
   tableInfo.name} implements Serializable {
   
    private static final long serialVersionUID = $!tool.serial();
#foreach({
   mathJaxContainer[0]}tableInfo.fullColumn)
    #if(${
   column.comment})/**
    * ${column.comment}
    */#end

    private {
   mathJaxContainer[1]}column.type)} $!{
   column.name};
#end

}

controller
使用了lombok插件,需要添加lombok.Data引用

##定义初始变量
#set({
   mathJaxContainer[2]}tool.append($tableInfo.name, "Controller"))
##设置回调
{
   mathJaxContainer[3]}tool.append($tableName, ".java"))
{
   mathJaxContainer[4]}tool.append($tableInfo.savePath, "/controller"))
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set({
   mathJaxContainer[5]}tableInfo.pkColumn.get(0))
#end

#if({
   mathJaxContainer[6]}!{
   tableInfo.savePackageName}.#{
   end}controller;

import com.test.common.core.annotation.Log;
import com.test.common.core.controller.BaseController;
import com.test.common.core.domain.AjaxResult;
import com.test.common.core.enums.BusinessType;
import com.test.common.core.page.TableDataInfo;
import {
   mathJaxContainer[7]}!{
   tableInfo.name};
import {
   mathJaxContainer[8]}!{
   tableInfo.name}Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;



/**
 * $!{tableInfo.comment}($!{tableInfo.name})表控制层
 *
 * @author $!author
 * @since $!time.currTime()
 */
@RestController
@RequestMapping("$!tool.firstLowerCase($tableInfo.name)")
public class $!{
   tableName} extends BaseController{
   
    /**
     * 服务对象
     */
    @Resource
    private {
   mathJaxContainer[11]}!tool.firstLowerCase($tableInfo.name)Service;

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return AjaxResult
     */
    @GetMapping("selectOne/{id}")
    public AjaxResult selectOne(@PathVariable("id") $!pk.shortType id) {
   
        {
   mathJaxContainer[12]}!tool.firstLowerCase({
   mathJaxContainer[13]}!{
   tool.firstLowerCase($tableInfo.name)}Service.queryById(id);
        return AjaxResult.success({
   mathJaxContainer[14]}tableInfo.name));
    }

     /**
     * 通过条件查询数据
     *
     * @return TableDataInfo
     */
    @GetMapping("/list")
    public TableDataInfo list($!{
   tableInfo.name} param){
   

        startPage();
        List<{
   mathJaxContainer[15]}!{
   tool.firstLowerCase($tableInfo.name)}Service.queryAllByParam(param);
        return getDataTable(list);
    }

    /**
     * 新增数据
     *
     * @return AjaxResult
     */
    @Log(title = "$!{tableInfo.comment}", businessType = BusinessType.INSERT)
    @PostMapping("add")
    public AjaxResult add(@Validated @RequestBody $!{
   tableInfo.name} param) {
   

        {
   mathJaxContainer[16]}!tool.firstLowerCase({
   mathJaxContainer[17]}!{
   tool.firstLowerCase($tableInfo.name)}Service.insert(param);

        return AjaxResult.success({
   mathJaxContainer[18]}tableInfo.name));
    }

    /**
     * 修改数据
     *
     * @return AjaxResult
     */
    @Log(title = "$!{tableInfo.comment}", businessType = BusinessType.UPDATE)
    @PutMapping("update")
    public AjaxResult update(@Validated @RequestBody $!{
   tableInfo.name} param) {
   
        $!pk.shortType id = param.getId();
        if(id == null){
   
            return AjaxResult.error("id不允许为空");
        }

        {
   mathJaxContainer[19]}!tool.firstLowerCase({
   mathJaxContainer[20]}!{
   tool.firstLowerCase($tableInfo.name)}Service.update(param);

        return AjaxResult.success({
   mathJaxContainer[21]}tableInfo.name));
    }


    /**
     * 根据id删除数据
     *
     * @return AjaxResult
     */
    @Log(title = "$!{tableInfo.comment}", businessType = BusinessType.DELETE)
    @DeleteMapping("/{id}")
    public AjaxResult remove(@PathVariable $!pk.shortType id) {
   
        boolean result = {
   mathJaxContainer[22]}tableInfo.name)}Service.deleteById(id);

        if(result) return AjaxResult.success();
        return AjaxResult.error();
    }

}

mapper.xml
insert 需要修改

##引入mybatis支持
$!mybatisSupport

##设置保存名称与保存位置
$!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>

    <!--查询单个-->
    <select id="queryById" resultMap="$!{tableInfo.name}Map">
        select
          #allSqlColumn()

        from $!tableInfo.obj.name
        where $!pk.obj.name = #{$!pk.name}
    </select>

    <!--查询指定行数据-->
    <select id="queryAllByLimit" resultMap="$!{tableInfo.name}Map">
        select
          #allSqlColumn()

        from $!tableInfo.obj.name
        limit #{offset}, #{limit}
    </select>

    <!--通过实体作为筛选条件查询-->
    <select id="queryAll" resultMap="$!{tableInfo.name}Map">
        select
          #allSqlColumn()

        from $!tableInfo.obj.name
        <where>
#foreach($column in $tableInfo.fullColumn)
            <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
                and $!column.obj.name = #{$!column.name}
            </if>
#end
        </where>
    </select>

     <!--通过实体作为筛选条件查询-->
    <select id="queryAllByParam" parameterType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" resultMap="$!{tableInfo.name}Map">
        select
          #allSqlColumn()

        from $!tableInfo.obj.name
        <where>
#foreach($column in $tableInfo.fullColumn)
            <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
                and $!column.obj.name = #{$!column.name}
            </if>
#end
        </where>
    </select>



    <!--新增所有列-->
    <insert id="insert" keyProperty="$!pk.name" useGeneratedKeys="true">
        insert into $!{tableInfo.obj.name}
        <trim prefix="(" suffix=")" suffixOverrides=",">
#foreach($column in $tableInfo.otherColumn)
            <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
                $!column.obj.name,
            </if>
#end
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
        #foreach($column in $tableInfo.otherColumn)
            <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
                #{$!column.name},
            </if>
            #end
        </trim>
 </insert>

    <!--通过主键修改数据-->
    <update id="update">
        update $!{tableInfo.obj.name}
        <set>
#foreach($column in $tableInfo.otherColumn)
            <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
                $!column.obj.name = #{$!column.name},
            </if>
#end
        </set>
        where $!pk.obj.name = #{$!pk.name}
    </update>

    <!--通过主键删除-->
    <delete id="deleteById">
        delete from $!{tableInfo.obj.name} where $!pk.obj.name = #{$!pk.name}
    </delete>

</mapper>

其它使用的是默认模板

相关文章
|
2天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之idea本地测试代码,要增大 Flink CDC 在本地 IDEA 测试环境中的内存大小如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
16 1
|
4天前
idea的yapi插件使用详解
idea的yapi插件使用详解
13 0
|
4天前
|
uml
【经验分享】如何在IDEA中快速学习|审查|复习代码工程?
在IDEA中加速工程学习与审查,提升代码质量和维护性,关键操作包括:使用&quot;Structure&quot;浏览工程结构,通过&quot;Find Usages&quot;查找类、方法或变量引用,借助&quot;Show Local Changes As UML&quot;展示UML图。遵循从整体到局部的UML图学习,再到具体代码的详细探索,可系统理解设计理念。详情参考[IDEA UML教程](https://blog.csdn.net/weixin_44701426/article/details/124598053)。
19 1
【经验分享】如何在IDEA中快速学习|审查|复习代码工程?
|
4天前
|
JSON Java Maven
IDEA开发过程中常用插件必备
本文介绍了提升IntelliJ IDEA开发效率的几个插件:Codota用于强大代码补全;Auto filling Java call arguments自动填充函数参数,节省手动填充时间;GsonFormat能快速将JSON转换为Java实体类;Rainbow Brackets帮助识别括号所属代码块;Maven Helper提供高效查看和分析Maven依赖树功能;Key Promoter X提醒使用快捷键代替鼠标操作;最后还分享了如何设置背景图片以提升编码心情。
|
4天前
|
XML SQL Java
IntelliJ IDEA 插件 MybatisX 在mapper和xml间跳转
IntelliJ IDEA 插件 MybatisX 在mapper和xml间跳转
|
4天前
|
人工智能 自然语言处理 Java
用智谱 GLM-4大模型开发自己的IDEA插件
V 哥建议研究大模型先从研究开放 API 开始,作为程序员的你觉对不是什么难事,通过研究 API 的过程中,可以让你更加了解大模型的原理,当然想要更深入的理解,需要对开源大模型的源码进行研究,根据个人的技术能力,量力而行。研究 API 是第一步,目前热招的岗位中,就有基于大模型开放 API 做应用开发的,大家可以在招聘站点上具体看看职位要求。
用智谱 GLM-4大模型开发自己的IDEA插件
IDEA之自定义快捷编程代码(代码模板)
IDEA之自定义快捷编程代码(代码模板)
142 0
IDEA之自定义快捷编程代码(代码模板)
|
4天前
|
安全 Java 数据库连接
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
|
4天前
|
存储 IDE Java
IntelliJ IDEA 安装及配置详细教程
IntelliJ IDEA 安装及配置详细教程
25 0