zoukankan      html  css  js  c++  java
  • 【easycode】使用说明 & 示例

    语法

    • ## 是模板的注释,不会生成
    • # 全局的一些设置
    • $ 使用库函数或者调用全局定义的内容

    常用方法

    • 数据库表信息 ${tableInfo}
      • comment 表备注
      • name 表名
      • fullColumn 所有列
        • comment 列备注
        • name 列名称
        • type 列类型
      • pkColumn 主键列
      • otherColumn 其他列

    常用功能

    • 循环
    #foreach($column in $tableInfo.fullColumn)
    #end
    
    • 判断,是否包含字符串
    #if($!{tool.getClsNameByFullName($column.type).contains('Date')})
    #end
    
    • 小写转换,把第一个字母转换为小写
    $!tool.firstLowerCase($!tableInfo.name)
    

    示例

    controller 自定义函数比较多,需要按照需要重写,前端也是可以生成的,通用性很差,根据实际情况生成

    entity

    ##导入宏定义
    $!define
    
    ##保存文件(宏定义)
    #save("/entity", ".java")
    
    ##包路径(宏定义)
    #setPackageSuffix("entity")
    
    ##自动导入包(全局变量)
    $!autoImport
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableName;
    import java.io.Serializable;
    import lombok.Data;
    
    import com.baomidou.mybatisplus.annotation.IdType;
    
    ##表注释(宏定义)
    #tableComment("表实体类")
    @Data
    @TableName
    public class $!{tableInfo.name} implements Serializable {
    
        private static final long serialVersionUID = -1; 
        /**
        * 自增 => @TableId(type = IdType.AUTO)
        */
    #foreach($column in $tableInfo.pkColumn)
        #if(${column.comment})
        
        /*${column.comment}*/#end
    @TableId
        private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
    #end
    #foreach($column in $tableInfo.otherColumn)
        #if(${column.comment})
        
        /*${column.comment}*/#end
        
        private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
    #end
    }
    

    mapper

    ##导入宏定义
    $!define
    
    ##设置表后缀(宏定义)
    #setTableSuffix("Mapper")
    
    ##保存文件(宏定义)
    #save("/mapper", "Mapper.java")
    
    ##包路径(宏定义)
    #setPackageSuffix("mapper")
    
    $!autoImport
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import org.apache.ibatis.annotations.Mapper;
    import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
    
    ##表注释(宏定义)
    #tableComment("表数据库访问层")
    @Mapper
    public interface $!{tableName} extends BaseMapper<$!tableInfo.name> {
    
    }
    

    service

    ##导入宏定义
    $!define
    
    ##设置表后缀(宏定义)
    #setTableSuffix("Service")
    
    ##保存文件(宏定义)
    #save("/service", "Service.java")
    
    ##包路径(宏定义)
    #setPackageSuffix("service")
    
    $!autoImport
    
    import com.baomidou.mybatisplus.extension.service.IService;
    import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
    
    ##表注释(宏定义)
    #tableComment("表服务接口")
    public interface $!{tableName} extends IService<$!tableInfo.name> {
    
    }
    

    serviceImpl

    ##导入宏定义
    $!define
    
    ##设置表后缀(宏定义)
    #setTableSuffix("ServiceImpl")
    
    ##保存文件(宏定义)
    #save("/service/impl", "ServiceImpl.java")
    
    ##包路径(宏定义)
    #setPackageSuffix("service.impl")
    
    $!autoImport
    
    import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
    import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;
    import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
    import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
    import org.springframework.stereotype.Service;
    
    ##表注释(宏定义)
    #tableComment("表服务实现类")
    @Service("$!tool.firstLowerCase($tableInfo.name)Service")
    public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> implements $!{tableInfo.name}Service {
    
    }
    

    controller

    ##导入宏定义
    $!define
    
    ##设置表后缀(宏定义)
    #setTableSuffix("Controller")
    
    ##保存文件(宏定义)
    #save("/controller", "Controller.java")
    
    ##包路径(宏定义)
    #setPackageSuffix("controller")
    
    ##定义服务名
    #set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))
    
    ##定义实体对象名
    #set($entityName = $!tool.firstLowerCase($!tableInfo.name))
    
    $!autoImport
    
    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.test.common.core.utils.Res;
    import com.test.common.core.utils.Result;
    import org.springframework.web.bind.annotation.*;
    import lombok.extern.slf4j.Slf4j;
    import lombok.AllArgsConstructor;
    import com.test.business.entity.CommonQuery;
    import com.test.business.utils.AutoQueryGenerator;
    
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    
    import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
    import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
    
    
    ##表注释(宏定义)
    #tableComment("表控制层")
    @RestController
    @RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)")
    @AllArgsConstructor
    @Slf4j
    @Api(tags = "${tableInfo.comment}(${tableInfo.name})APi")
    public class $!{tableName} {
        /**
         * 服务对象
         */
        private final $!{tableInfo.name}Service $!{serviceName};
    
        /**
         * 分页查询所有数据
         *
         * @param page 分页对象
         * @param $!entityName 查询实体
         * @return 所有数据
         */
        @GetMapping("/page")
    	@ApiOperation(value = "分页查询${tableInfo.comment}")
        public Result listPageAll(Page<$!tableInfo.name> page, $!tableInfo.name $!entityName) {
            return Res.ok($!{serviceName}.page(page, new LambdaQueryWrapper<$!tableInfo.name>()));
        }
        
         /**
         * 高级查询数据
         *
         * @param page 分页对象
         * @param $!entityName 查询实体
         * @return 所有数据
         */
        @GetMapping("/queryPage")
    	@ApiOperation(value = "高级分页查询${tableInfo.comment}")
        public Result listPageAll(Page<$!tableInfo.name> page, $!tableInfo.name $!entityName, CommonQuery commonQuery) {
            QueryWrapper<$!tableInfo.name> autoQueryWrapper = AutoQueryGenerator.initQueryWrapper($!entityName, commonQuery);
            return Res.ok($!{serviceName}.page(page, autoQueryWrapper));
        }
        
         /**
         * 高级查询所有数据
         *
         * @param $!entityName 查询实体
         * @return 所有数据
         */
        @GetMapping("/list")
        @ApiOperation(value = "高级查询全部${tableInfo.comment}")
        public Result listAll($!tableInfo.name $!entityName,  CommonQuery commonQuery) {
            QueryWrapper<$!tableInfo.name> autoQueryWrapper = AutoQueryGenerator.initQueryWrapper($!entityName, commonQuery);
            return Res.ok($!{serviceName}.list(autoQueryWrapper));
        }
        
        /**
         * 通过主键查询单条数据
         *
         * @param id 主键
         * @return 单条数据
         */
        @GetMapping("/{id}")
        @ApiOperation(value = "获取单个${tableInfo.comment}")
        public Result selectOne(@PathVariable("id") Long id) {
            return Res.ok($!{serviceName}.getById(id));
        }
    
        /**
         * 新增数据
         *
         * @param $!entityName 实体对象
         * @return 新增结果
         */
        @PostMapping
        @ApiOperation(value = "新增${tableInfo.comment}")
        public Result insert(@RequestBody $!tableInfo.name $!entityName) {
            return Res.ok($!{serviceName}.save($!entityName));
        }
    
        /**
         * 修改数据
         *
         * @param $!entityName 实体对象
         * @return 修改结果
         */
        @PutMapping
        @ApiOperation(value = "修改${tableInfo.comment}")
        public Result update(@RequestBody $!tableInfo.name $!entityName) {
            return Res.ok($!{serviceName}.updateById($!entityName));
        }
    
        /**
         * 删除数据
         *
         * @param id 主键结合
         * @return 删除结果
         */
        @DeleteMapping("/{id}")
        @ApiOperation(value = "删除${tableInfo.comment}")
        public Result delete(@PathVariable("id") Long id) {
            return Res.ok($!{serviceName}.removeById(id));
        }
    }
    
  • 相关阅读:
    老外写的js闭包
    List<Object> 转为 List<MyClass>
    html 自定义属性
    js 中的算术运算
    System.Web.Mvc.Html 命名空间小计
    历时半年,发布最完整的代码生成器CodeBuilder最新版本
    CodeBuilder之Template接口
    CodeBuilder之Tool接口
    FaibClass.Data
    轻量的Json序列化
  • 原文地址:https://www.cnblogs.com/somliy/p/13073566.html
Copyright © 2011-2022 走看看