EasyCode mybatis-plus代码生成模板

Entity.java.vm

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

##保存文件(宏定义)
#save("/entity", ".java")

##包路径(宏定义)
#setPackageSuffix("entity")

##自动导入包(全局变量)
$!autoImport
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

##表注释(宏定义)
#tableComment("")
@Data
@TableName("$!tableInfo.obj.name")
public class $!{tableInfo.name}  implements Serializable {

    private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)

##注释不为空打印注释
#if(${column.comment})
    /**
     * ${column.comment}
     **/
#end
##id字段
#if($!{column.name} == 'id')
    @TableId(type = IdType.ASSIGN_ID)
#end
##逻辑删除字段
#if($!{column.name} == 'delFlag')
    @TableLogic
#end
##创建时间
#if($!{column.name} == 'createTime')
    @TableField(fill = FieldFill.INSERT)
#end
##修改时间
#if($!{column.name} == 'updateTime')
    @TableField(fill = FieldFill.INSERT_UPDATE)
#end
#if($!{tool.getClsNameByFullName($column.type).contains('Date')})
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
#end
## 乐观锁注解
#if($!{column.name} == 'version')
    @Version
#end
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
}


Mapper.java.vm

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

##设置保存名称与保存位置
$!callback.setFileName($tool.append($!{tableInfo.name}, "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}Mapper">
    <!--公共sql字段-->
    <sql id="$!{tableInfo.name}SQL">
    #allSqlColumn()
    </sql>
    
     <!-- $!{tableInfo.comment}分页查询-->
    <select id="page$!{tableInfo.name}List" resultType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}">
        select
          #allSqlColumn()
          
        from $!tableInfo.obj.name
       <where>
#foreach($column in $tableInfo.fullColumn)
#if($!{column.name} =='delFlag')
            del_flag = 0
#end
#end
        
#foreach($column in $tableInfo.fullColumn)
##------过滤逻辑删除字段------
#if($!{column.name} != 'delFlag')
            <if test="pageQuery.$!column.name != null#if($column.type.equals("java.lang.String")) and pageQuery.$!column.name != ''#end">
#if($column.type.equals("java.lang.String"))
                and $!column.obj.name like concat('%',#{pageQuery.$!column.name},'%')
#else
                and $!column.obj.name = #{pageQuery.$!column.name}
#end
            </if>
##------逻辑删除字段判断结束------
#end
#end
        </where>
        order BY id DESC
    </select>
    
    
    <!--公共表字段映射关系-->
    <resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map">
#foreach($column in $tableInfo.fullColumn)
        <result property="$!column.name" column="$!column.obj.name"/>
#end
    </resultMap>
    
</mapper>


Service.java.vm

添加自定义方法


##定义设置表名前缀缀的宏定义,调用方式:#setTablePrefix("Test")
#macro(setTablePrefix $prefix)
#set($tableName = $!tool.append($tableInfo.name, $prefix))
#end

##定义直接保存路径与文件名简化的宏定义,调用方式:#save("/entity", ,"前缀",".java")
#macro(prefixSave $path $prefix $fileName)
    $!callback.setSavePath($tool.append($tableInfo.savePath, $path))
    $!callback.setFileName($tool.append($prefix, $tableInfo.name, $fileName))
#end
##导入宏定义
$!{define.vm}

##设置表后缀(宏定义)
#setTableSuffix("Service")

##保存文件(宏定义)
#prefixSave("/service","I","Service.java")

##包路径(宏定义)
#setPackageSuffix("service")

##定义初始变量
#set($AddParams = $!tool.append($!tableInfo.savePackageName, ".params.", $!tableInfo.name,"AddParams"))
#set($UpdateParams = $!tool.append($!tableInfo.savePackageName, ".params.", $!tableInfo.name,"UpdateParams"))
#set($queryType = $!tool.append($!tableInfo.savePackageName, ".query.", $!tableInfo.name,"Query"))

import $AddParams;
import $UpdateParams;
import $queryType;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;

##表注释(宏定义)
#tableComment("")
public interface I$!{tableName} extends IService<$!tableInfo.name> {

    /**
     * $!{tableInfo.comment}分页查询
     * @param pageQuery 查询$!{tableInfo.comment}参数
     * @return $!{tableInfo.comment}分页列表
     */
    Page<${tableInfo.name}ListVO> page${tableInfo.name}List(${tableInfo.name}Query pageQuery);

   /**
     * 查询$!{tableInfo.comment}详情
     *
     * @param id 根据id获取详情
     * @return $!{tableInfo.comment}详情
     */
     ${tableInfo.name}DetailsVO get${tableInfo.name}Details(Long id);

    /**
     * 新增$!{tableInfo.comment}
     * @param addParams 新增$!{tableInfo.comment}参数
     */
    void addDataByParams(${tableInfo.name}AddParams addParams);
    
    /**
     * 修改$!{tableInfo.comment}
     * @param updateParams 修改$!{tableInfo.comment}参数
     */
    void updateDataByParams(${tableInfo.name}UpdateParams updateParams);

}



ServiceImpl.java.vm

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

##设置表后缀(宏定义)
#setTableSuffix("ServiceImpl")

##保存文件(宏定义)
#save("/service/impl", "ServiceImpl.java")

##包路径(宏定义)
#setPackageSuffix("service.impl")

##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
#set($voType = $!tool.append($!tableInfo.savePackageName, ".vo.", $!tableInfo.name,"VO"))
#set($paramsType = $!tool.append($!tableInfo.savePackageName, ".params.", $!tableInfo.name,"AddOrUpdateParams"))
#set($queryType = $!tool.append($!tableInfo.savePackageName, ".query.", $!tableInfo.name,"Query"))

import $voType;
import $paramsType;
import $queryType;
import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;
import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.service.I$!{tableInfo.name}Service;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

##表注释(宏定义)
#tableComment("")
@Service
public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> 
    implements I$!{tableInfo.name}Service {

    @Override
    public Page<${tableInfo.name}ListVO> page${tableInfo.name}List(${tableInfo.name}Query pageQuery){
        Page<${tableInfo.name}> page = baseMapper.page${tableInfo.name}List(new Page<>(pageQuery.getPageNo(), pageQuery.getPageSize()),pageQuery);
        return BeanCopyUtils.copyPage(page,${tableInfo.name}ListVO.class);
    }
    
    @Override
    public ${tableInfo.name}DetailsVO get${tableInfo.name}Details(Long id) {
        ${tableInfo.name} obj =  baseMapper.selectById(id);
        return BeanUtil.copyProperties(obj, ${tableInfo.name}VO.class);
    }
    
    @Override
    public void addDataByParams(${tableInfo.name}AddParams addParams){
        baseMapper.insert(BeanCopyUtils.copyNewBean(addParams, $!{tableInfo.name}.class));
    }
    
    @Override
    public void updateDataByParams(${tableInfo.name}UpdateParams updateParams){
        baseMapper.updateById(BeanUtil.copyProperties(updateParams, ${tableInfo.name}.class));
    }
}




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))
#set($AddParams = $!tool.append($!tableInfo.savePackageName, ".params.", $!tableInfo.name,"AddParams"))
#set($UpdateParams = $!tool.append($!tableInfo.savePackageName, ".params.", $!tableInfo.name,"UpdateParams"))
#set($queryType = $!tool.append($!tableInfo.savePackageName, ".query.", $!tableInfo.name,"Query"))

import $AddParams;
import $UpdateParams;
import $queryType;
import $!{tableInfo.savePackageName}.service.I$!{tableInfo.name}Service;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.common.api.vo.Result;

import javax.annotation.Resource;

##表注释(宏定义)
#tableComment("控制器")
@Api(tags = "$tool.append($!{tableInfo.comment},"控制器")")
@RestController
@RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)")
public class $!{tableName} {
   
    @Resource
    private I$!{tableInfo.name}Service $!{serviceName};

    /**
     * $!{tableInfo.comment}分页查询
     * @param pageQuery 查询$!{tableInfo.comment}参数
     * @return $!{tableInfo.comment}分页列表
     */
    @ApiOperation("$!{tableInfo.comment}分页查询")
    @GetMapping("/page")
    public Result<Page<${tableInfo.name}ListVO>> page${tableInfo.name}List($!{tableInfo.name}Query pageQuery) {
        Page<${tableInfo.name}ListVO> pageList = $!{serviceName}.page${tableInfo.name}List(pageQuery);
        return Result.OK(pageList);
    }
    
     /**
      * 查询$!{tableInfo.comment}详情
      *
      * @param id 根据id获取详情
      * @return $!{tableInfo.comment}详情
     */
     @ApiOperation("查询$!{tableInfo.comment}详情")
     @GetMapping("/details/{id}")
     public Result<${tableInfo.name}DetailsVO> get${tableInfo.name}Details(@PathVariable("id")Long id) {
         ${tableInfo.name}DetailsVO details = $!{serviceName}.get${tableInfo.name}Details(id);
         return Result.OK(details);
     }
    
    /**
     * 新增 $!{tableInfo.comment}
     *
     * @param addParams 新增 $!{tableInfo.comment}参数
    */
    @ApiOperation("新增$!{tableInfo.comment}")
    @PostMapping("/add")
    public Result<?> addDataByParams(@RequestBody $!{tableInfo.name}AddParams addParams) {
         $!{serviceName}.addDataByParams(addParams);
        return Result.OK();
    }

    /**
     * 修改 $!{tableInfo.comment}
     * @param updateParams 修改 $!{tableInfo.comment}参数
    */
    @ApiOperation("修改$!{tableInfo.comment}")
    @PutMapping("/edit")
    public Result<?> updateDataByParams(@RequestBody $!{tableInfo.name}UpdateParams updateParams) {
        $!{serviceName}.updateDataByParams(updateParams);
        return Result.OK();
    }

    /**
     * 删除 $!{tableInfo.comment}
     * @param id 根据id删除
    */
    @ApiOperation("根据id删除$!{tableInfo.comment}")
    @DeleteMapping("/del/{id}")
    public Result<?> deleteById(@PathVariable("id")Long id) {
        $!{serviceName}.removeById(id);
        return Result.OK();
    }
}

mapper.xml.vm

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

##设置保存名称与保存位置
$!callback.setFileName($tool.append($!{tableInfo.name}, "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}Mapper">
    <!--公共sql字段-->
    <sql id="$!{tableInfo.name}SQL">
    #allSqlColumn()
    </sql>
    
     <!-- $!{tableInfo.comment}分页查询-->
    <select id="page$!{tableInfo.name}List" resultType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}">
        select
          #allSqlColumn()
          
        from $!tableInfo.obj.name
       <where>
#foreach($column in $tableInfo.fullColumn)
#if($!{column.name} =='delFlag')
            del_flag = 0
#end
#end
        
#foreach($column in $tableInfo.fullColumn)
##------过滤逻辑删除字段------
#if($!{column.name} != 'delFlag')
            <if test="pageQuery.$!column.name != null#if($column.type.equals("java.lang.String")) and pageQuery.$!column.name != ''#end">
#if($column.type.equals("java.lang.String"))
                and $!column.obj.name like concat('%',#{pageQuery.$!column.name},'%')
#else
                and $!column.obj.name = #{pageQuery.$!column.name}
#end
            </if>
##------逻辑删除字段判断结束------
#end
#end
        </where>
        order BY id DESC
    </select>
    
    
    <!--公共表字段映射关系-->
    <resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map">
#foreach($column in $tableInfo.fullColumn)
        <result property="$!column.name" column="$!column.obj.name"/>
#end
    </resultMap>
    
</mapper>


Query.java.vm

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

##保存文件(宏定义)
#save("/query", "Query.java")

##设置表后缀(宏定义)
#setTableSuffix("Query")

##包路径(宏定义)
#setPackageSuffix("query")

##自动导入包(全局变量)
$!autoImport
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

##表注释(宏定义)
#tableComment("")
@Data
@ApiModel(value = "$!{tableName}",description = "$tool.append($!{tableInfo.comment},"条件查询请求参数")")
public class  $!{tableName}{

    /**
     * 页数
     */
    @ApiModelProperty(value = "页数", example = "1")
    private int pageNo = 0;
    
    /**
     * 一页返回的数据
     */
    @ApiModelProperty(value = "一页返回的数据", example = "10")
    private int pageSize = 10;
    
    #foreach($column in $tableInfo.fullColumn)
##------跳过字段------
#if($!{column.name} != 'delFlag')
##注释不为空打印注释
#if(${column.comment})
    /**
     * ${column.comment}
     */
#end
##时间格式
#if($!{tool.getClsNameByFullName($column.type).contains('Date')})
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
#end
    @ApiModelProperty("$!{column.comment}")
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
    
##------跳过字段判断结束------
#end
##------循环结束------
#end
}




AddParams.java.vm

##导入宏定义
$!{define.vm}
##保存文件(宏定义)
#save("/params", "AddParams.java")
##设置表后缀(宏定义)
#setTableSuffix("AddParams")
##包路径(宏定义)
#setPackageSuffix("params")
##自动导入包(全局变量)
$!autoImport
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
##表注释(宏定义)
#tableComment("")
@Data
@ApiModel(value = "$!{tableName}",description = "$tool.append($!{tableInfo.comment},"请求参数")")
public class  $!{tableName}{
#foreach($column in $tableInfo.fullColumn)
##跳过字段
#if($!{column.name} !=  'id'&&$!{column.name} != 'delFlag'&&$!{column.name} != 'createTime'&&$!{column.name} != 'updateTime'&&$!{column.name} != 'createBy'&&$!{column.name} != 'updateBy')
##注释不为空打印注释
#if(${column.comment})

/**
* ${column.comment}
**/
#end
##时间格式
#if($!{tool.getClsNameByFullName($column.type).contains('Date')})
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
#end
@ApiModelProperty("$!{column.comment}")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
##------跳过字段判断结束------
#end
##------循环结束------
#end
}

UpdateParams.java.vm

##导入宏定义
$!{define.vm}
##保存文件(宏定义)
#save("/params", "UpdateParams.java")
##设置表后缀(宏定义)
#setTableSuffix("UpdateParams")
##包路径(宏定义)
#setPackageSuffix("params")
##自动导入包(全局变量)
$!autoImport
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.util.Date;
##表注释(宏定义)
#tableComment("")
@Data
@ApiModel(value = "$!{tableName}",description = "$tool.append($!{tableInfo.comment},"请求参数")")
public class  $!{tableName}{
#foreach($column in $tableInfo.fullColumn)
##跳过字段
#if($!{column.name} != 'delFlag'&&$!{column.name} != 'createTime'&&$!{column.name} != 'updateTime'&&$!{column.name} != 'createBy'&&$!{column.name} != 'updateBy')
##注释不为空打印注释
#if(${column.comment})

/**
* ${column.comment}
**/
#end
#if($!{column.name} == 'id')
@NotNull(message = "修改唯一ID不能为空")
#end
##时间格式
#if($!{tool.getClsNameByFullName($column.type).contains('Date')})
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
#end
@ApiModelProperty("$!{column.comment}")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
##------跳过字段判断结束------
#end
##------循环结束------
#end
}

ListVO.java.vm

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

##保存文件(宏定义)
#save("/vo", "ListVO.java")

##设置表后缀(宏定义)
#setTableSuffix("ListVO")

##包路径(宏定义)
#setPackageSuffix("vo")

##自动导入包(全局变量)
$!autoImport
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

##表注释(宏定义)
#tableComment("")
@Data
@ApiModel(value = "$!{tableName}",description = "$tool.append($!{tableInfo.comment},"响应参数")")
public class  $!{tableName}{

#foreach($column in $tableInfo.fullColumn)
##跳过字段
#if($!{column.name} != 'delFlag')
##注释不为空打印注释
#if(${column.comment})
    /**
     * ${column.comment}
     **/
#end
##时间格式
#if($!{tool.getClsNameByFullName($column.type).contains('Date')})
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
#end
    @ApiModelProperty("${column.comment}")
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
    
##------跳过字段判断结束------
#end
##------循环结束------
#end
}


DetailsVO.java.vm

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

##保存文件(宏定义)
#save("/vo", "DetailsVO.java")

##设置表后缀(宏定义)
#setTableSuffix("DetailsVO")

##包路径(宏定义)
#setPackageSuffix("vo")

##自动导入包(全局变量)
$!autoImport
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

##表注释(宏定义)
#tableComment("")
@Data
@ApiModel(value = "$!{tableName}",description = "$tool.append($!{tableInfo.comment},"响应参数")")
public class  $!{tableName}{

#foreach($column in $tableInfo.fullColumn)
##跳过字段
#if($!{column.name} != 'delFlag')
##注释不为空打印注释
#if(${column.comment})
    /**
     * ${column.comment}
     **/
#end
##时间格式
#if($!{tool.getClsNameByFullName($column.type).contains('Date')})
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
#end
    @ApiModelProperty("${column.comment}")
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
    
##------跳过字段判断结束------
#end
##------循环结束------
#end
}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值