IDEA插件|EasyCode自动生成代码自用模板

Tips:模板里存储文件及生成文件的位置需要修改成自己的目录结构。我的项目架构是SpringBoot+Mybatis-Plus+Redis+Shiro+Jwt,其中用到了MyBatis-Plus的CRUD以及条件构造器。

目录结构:

controller.java.vm:

##定义初始变量
#set($tableName = $tool.append($tableInfo.name.substring(1), "Controller"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/admin/controller"))

##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pk = $tableInfo.pkColumn.get(0))
#end

#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}admin.controller;

import ${tableInfo.savePackageName}.admin.service.${tableInfo.name.substring(1)}Service;
import com.vip.jwt.common.entity.R;
import ${tableInfo.savePackageName}.entity.${tableInfo.name.substring(1)};
import org.springframework.web.bind.annotation.*;

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

/**
 * $!{tableInfo.comment} ${tableInfo.name.substring(1)}表 前端控制器
 *
 * @author $!author
 * @since $!time.currTime()
 */
@RestController
@RequestMapping("/api/$tool.firstLowerCase($tableInfo.name.substring(1))")
public class ${tableName} {

    @Resource
    private ${tableInfo.name.substring(1)}Service $tool.firstLowerCase($tableInfo.name.substring(1))Service;

    /**
     * 新增单条数据
     *
     * @param ${tool.firstLowerCase($tableInfo.name.substring(1))}
     * @return
     */
    @PostMapping("/insert${tableInfo.name.substring(1)}")
    public Object insert${tableInfo.name.substring(1)}(@RequestBody ${tableInfo.name.substring(1)} ${tool.firstLowerCase($tableInfo.name.substring(1))}) {
        ${tool.firstLowerCase($tableInfo.name.substring(1))}Service.save(${tool.firstLowerCase($tableInfo.name.substring(1))});
        return R.ok();
    }

    /**
     * 删除单条数据
     *
     * @param id
     * @return
     */
    @PostMapping("/delete${tableInfo.name.substring(1)}ById")
    public Object delete${tableInfo.name.substring(1)}ById(@RequestParam("id") $!pk.shortType id) {
        ${tool.firstLowerCase($tableInfo.name.substring(1))}Service.removeById(id);
        return R.ok();
    }

    /**
     * 编辑单条数据
     *
     * @param ${tool.firstLowerCase($tableInfo.name.substring(1))}
     * @return
     */
    @PostMapping("/update${tableInfo.name.substring(1)}")
    public Object update${tableInfo.name.substring(1)}(@RequestBody ${tableInfo.name.substring(1)} ${tool.firstLowerCase($tableInfo.name.substring(1))}) {
        ${tool.firstLowerCase($tableInfo.name.substring(1))}Service.updateById(${tool.firstLowerCase($tableInfo.name.substring(1))});
        return R.ok();
    }


    /**
     * 查询所有数据(分页)
     *
     * @param ${tool.firstLowerCase($tableInfo.name.substring(1))}
     * @return
     */
    @PostMapping("/list${tableInfo.name.substring(1)}")
    public Object list${tableInfo.name.substring(1)}(@RequestBody ${tableInfo.name.substring(1)} ${tool.firstLowerCase($tableInfo.name.substring(1))}) {
        Map<String, Object> ${tool.firstLowerCase($tableInfo.name.substring(1))}Data = ${tool.firstLowerCase($tableInfo.name.substring(1))}Service.findByContent(${tool.firstLowerCase($tableInfo.name.substring(1))});       
        return R.ok().data("data", ${tool.firstLowerCase($tableInfo.name.substring(1))}Data);
    }
    
}

service.java.vm:

##定义初始变量
#set($tableName = $tool.append($tableInfo.name.substring(1), "Service"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/admin/service"))

##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pk = $tableInfo.pkColumn.get(0))
#end

#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import ${tableInfo.savePackageName}.entity.${tableInfo.name.substring(1)};

import java.util.Map;

/**
 * $!{tableInfo.comment} ${tableInfo.name}表 服务类
 *
 * @author $!author
 * @since $!time.currTime()
 */
public interface ${tableName} extends IService<${tableInfo.name.substring(1)}> {

    Map<String, Object> findByContent(${tableInfo.name.substring(1)} ${tool.firstLowerCase($tableInfo.name.substring(1))});

}

serviceImpl.java.vm:

##定义初始变量
#set($tableName = $tool.append($tableInfo.name.substring(1), "ServiceImpl"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/admin/service/impl"))

##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pk = $tableInfo.pkColumn.get(0))
#end

#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}admin.service.impl;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import ${tableInfo.savePackageName}.admin.service.${tableInfo.name.substring(1)}Service;
import ${tableInfo.savePackageName}.entity.${tableInfo.name.substring(1)};
import ${tableInfo.savePackageName}.mapper.${tableInfo.name.substring(1)}Mapper;
import org.springframework.stereotype.Service;

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

/**
 * $!{tableInfo.comment} ${tableInfo.name.substring(1)}表 服务实现类
 *
 * @author $!author
 * @since $!time.currTime()
 */
@Service
public class ${tableName} extends ServiceImpl<${tableInfo.name.substring(1)}Mapper, ${tableInfo.name.substring(1)}> implements ${tableInfo.name.substring(1)}Service {
    
    @Resource
    private ${tableInfo.name.substring(1)}Mapper $tool.firstLowerCase(${tableInfo.name.substring(1)})Mapper;

    @Override
    public Map<String, Object> findByContent(${tableInfo.name.substring(1)} ${tool.firstLowerCase($tableInfo.name.substring(1))}) {
        Integer PageSize = ${tool.firstLowerCase($tableInfo.name.substring(1))}.getPageSize();
        Integer CurrentPage = ${tool.firstLowerCase($tableInfo.name.substring(1))}.getCurrentPage();
        String tittle = ${tool.firstLowerCase($tableInfo.name.substring(1))}.getTittle();

        QueryWrapper<${tableInfo.name.substring(1)}> wrapper = new QueryWrapper<>();
        wrapper.orderByDesc("create_time");
        if (StrUtil.isNotEmpty(tittle)) {
            wrapper.like("tittle", tittle);
        }

        // 创建分页对象
        Page<${tableInfo.name.substring(1)}> page = new Page<>(CurrentPage, PageSize);
        // 执行查询
        IPage<${tableInfo.name.substring(1)}> resultPage = ${tool.firstLowerCase($tableInfo.name.substring(1))}Mapper.selectPage(page, wrapper);
        // 获取查询结果
        List<${tableInfo.name.substring(1)}> records = resultPage.getRecords();
        long total = resultPage.getTotal();

        // 封装查询结果
        Map<String, Object> resultMap = new HashMap<>();
        resultMap.put("records", records);
        resultMap.put("total", total);
        return resultMap;
    }
}

mapper.java.vm:

##定义初始变量
#set($tableName = $tool.append($tableInfo.name.substring(1), "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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
import ${tableInfo.savePackageName}.entity.${tableInfo.name.substring(1)};

/**
 * $!{tableInfo.comment} ${tableInfo.name.substring(1)}表 Mapper 接口
 *
 * @author $!author
 * @since $!time.currTime()
 */
public interface ${tableName} extends BaseMapper<${tableInfo.name.substring(1)}> {

}

mapper.xml.vm:

##引入mybatis支持
$!{mybatisSupport.vm}

##设置保存名称与保存位置
$!callback.setFileName($tool.append($!{tableInfo.name.substring(1)}, "Mapper.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}.mapper.${tableInfo.name.substring(1)}Mapper">

</mapper>

entity.java.vm:

##引入宏定义
$!{define.vm}

##设置回调
$!callback.setFileName($tool.append($tableInfo.name.substring(1), ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/entity"))

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

import com.baomidou.mybatisplus.annotation.TableName;
##使用全局变量实现默认包导入
$!{autoImport.vm}
import java.io.Serializable;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * $!{tableInfo.comment} $!{tableInfo.name.substring(1)}表 实体类
 *
 * @author $!author
 * @since $!time.currTime()
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("$!{tableInfo.obj.name}")
public class $!{tableInfo.name.substring(1)} extends BaseEntity implements Serializable {

    private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
    #if(${column.comment})/**
     * ${column.comment}
     */#end

    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值