• 代码模板


    easycode 插件生成

    模板 d100ca7639f894d3f948d39be395b88b

     entity

    ##导入宏定义
    $!define
    ##保存文件(宏定义)
    #save("/entity", ".java")
    ##包路径(宏定义)
    #setPackageSuffix("entity")
    ##自动导入包(全局变量)
    $!autoImport
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.extension.activerecord.Model;
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    import java.io.Serializable;
    
    
    ##表注释(宏定义)
    #tableComment("表实体类")
    @Data
    @ApiModel("$!{tableInfo.comment}")
    public class $!{tableInfo.name} extends Model<$!{tableInfo.name}> implements Serializable {
    
    private static final long serialVersionUID = $!tool.serial();
    
    #foreach($column in $tableInfo.fullColumn)
        #if(${column.comment})@ApiModelProperty(value = "${column.comment}")#end
        #if($column.name.equals('id'))@TableId(type = IdType.AUTO)#end
        private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
        
    #end
    }
    service

    ##导入宏定义
    $!define
    
    ##设置表后缀(宏定义)
    #setTableSuffix("Service")
    
    ##保存文件(宏定义)
    #save("/service", "Service.java")
    
    ##包路径(宏定义)
    #setPackageSuffix("service")
    
    import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
    import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;
    import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
    import org.springframework.stereotype.Service;
    import $!{tableInfo.savePackageName}.common.*;
    import $!{tableInfo.savePackageName}.param.*;
    import $!{tableInfo.savePackageName}.dto.*;
    import $!{tableInfo.savePackageName}.vo.*;
    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
    import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
    import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import org.springframework.beans.BeanUtils;
    import java.io.Serializable;
    import java.util.*;
    
    ##表注释(宏定义)
    #tableComment("表服务接口")
    @Service("$!tool.firstLowerCase($tableInfo.name)Service")
    public class $!{tableName}  extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> {
    
        public $!{tableInfo.name}ListVo list($!{tableInfo.name}ListParam param) {
            $!{tableInfo.name}ListVo vo = new $!{tableInfo.name}ListVo(true, "查询成功");
            QueryWrapper<$!{tableInfo.name}> wrapper = new QueryWrapper<>();
            wrapper.lambda()
                    .eq(ObjectUtils.isNotEmpty(param.getStatus()), $!{tableInfo.name}::getStatus, param.getStatus())
                    .in(CollectionUtils.isNotEmpty(param.getIdList()), $!{tableInfo.name}::getId, param.getIdList())
                    .ge(ObjectUtils.isNotEmpty(param.getStartCreateTime()), $!{tableInfo.name}::getCreateTime, param.getStartCreateTime())
                    .le(ObjectUtils.isNotEmpty(param.getEndCreateTime()), $!{tableInfo.name}::getCreateTime, param.getEndCreateTime())
                    .orderByDesc($!{tableInfo.name}::getCreateTime);
            PageHelper.startPage(param.getCurrentPage(), param.getPageSize());
            List<$!{tableInfo.name}> list = this.list(wrapper);
            List<$!{tableInfo.name}Dto> dtoList = new ArrayList<>();
            for ($!{tableInfo.name} $!tool.firstLowerCase($!tableInfo.name) : list){
                $!{tableInfo.name}Dto dto= new $!{tableInfo.name}Dto();
                BeanUtils.copyProperties($!tool.firstLowerCase($!tableInfo.name),dto);
                dtoList.add(dto);
            }
            vo.setList(dtoList);
            PageInfo<$!{tableInfo.name}> pageInfo = new PageInfo<>(list);
            vo.setTotal(pageInfo.getTotal());
            vo.setPageSize(param.getPageSize());
            vo.setCurrentPage(param.getCurrentPage());
            return vo;
        }
        
         public $!{tableInfo.name}Vo get(Serializable id) {
           $!{tableInfo.name}Vo vo = new $!{tableInfo.name}Vo(true, "查询成功");
           $!{tableInfo.name} $!tool.firstLowerCase($!tableInfo.name) = this.getById(id);
           $!{tableInfo.name}Dto dto = new  $!{tableInfo.name}Dto();
           BeanUtils.copyProperties($!tool.firstLowerCase($!tableInfo.name), dto);
           vo.setData(dto);
           return vo;
        }
        
        public ResultDto save($!{tableInfo.name}SaveParam param) {
            ResultDto dto = new ResultDto(true, "保存成功");
            $!{tableInfo.name} $!tool.firstLowerCase($!tableInfo.name) = new $!{tableInfo.name}();
            BeanUtils.copyProperties(param, $!tool.firstLowerCase($!tableInfo.name));
            this.save($!tool.firstLowerCase($!tableInfo.name));
            return dto;
        }
    
        public ResultDto update($!{tableInfo.name}UpdateParam param) {
            ResultDto dto = new ResultDto(true, "更新成功");
            $!{tableInfo.name} $!tool.firstLowerCase($!tableInfo.name) = new $!{tableInfo.name}();
            BeanUtils.copyProperties(param, $!tool.firstLowerCase($!tableInfo.name));
            UpdateWrapper<$!{tableInfo.name}> wrapper = new UpdateWrapper<>();
            wrapper.lambda().in(CollectionUtils.isNotEmpty(param.getIdList()), $!{tableInfo.name}::getId, param.getIdList());
            this.update($!tool.firstLowerCase($!tableInfo.name), wrapper);
            return dto;
        }
    
        public ResultDto delete(List<Long> idList) {
            ResultDto dto = new ResultDto(true, "删除成功");
            this.removeByIds(idList);
            return dto;
        }
    }
    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))
    
    import com.baomidou.mybatisplus.extension.api.ApiController;
    import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
    import org.springframework.web.bind.annotation.*;
    import $!{tableInfo.savePackageName}.common.*;
    import $!{tableInfo.savePackageName}.param.*;
    import $!{tableInfo.savePackageName}.vo.*;
    import io.swagger.annotations.ApiOperation;
    import javax.annotation.Resource;
    import java.io.Serializable;
    import java.util.List;
    
    ##表注释(宏定义)
    #tableComment("表控制层")
    @RestController
    @RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)/")
    public class $!{tableName} extends ApiController {
      
        @Resource
        private $!{tableInfo.name}Service $!{serviceName};
    
        @GetMapping("list")
        @ApiOperation(value = "根据条件查询所有数据", notes = "根据条件查询所有数据")
        public $!{tableInfo.name}ListVo list($!{tableInfo.name}ListParam param) {
            return $!{serviceName}.list(param);
        }
    
        
        @GetMapping("{id}")
        @ApiOperation(value = "通过主键查询单条数据", notes = "通过主键查询单条数据")
        public $!{tableInfo.name}Vo get(@PathVariable Serializable id) {
            return $!{serviceName}.get(id);
        }
    
        @PostMapping("save")
        @ApiOperation(value = "新增数据", notes = "新增数据")
        public ResultDto save(@RequestBody $!{tableInfo.name}SaveParam $!entityName) {
            return $!{serviceName}.save($!entityName);
        }
    
       
        @PutMapping("update")
        @ApiOperation(value = "修改数据", notes = "修改数据")
        public ResultDto update(@RequestBody $!{tableInfo.name}UpdateParam $!entityName) {
            return $!{serviceName}.update($!entityName);
        }
    
        @ApiOperation(value = "删除数据", notes = "删除数据")
        @DeleteMapping("delete")
        public ResultDto delete(@RequestParam("idList") List<Long> idList) {
            return $!{serviceName}.delete(idList);
        }
    }
    mapper.xml

    ##引入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}.mapper.$!{tableInfo.name}Mapper">
    
        <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>
        
     <!--  <sql id="Base_Column_List" >
        #foreach($column in $tableInfo.fullColumn)
         $!column.obj.name, 
        #end
       </sql> -->
    </mapper>
    mapper
    ##导入宏定义
    $!define
    
    ##设置表后缀(宏定义)
    #setTableSuffix("Mapper")
    
    ##保存文件(宏定义)
    #save("/mapper", "Mapper.java")
    
    ##包路径(宏定义)
    #setPackageSuffix("mapper")
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
    
    ##表注释(宏定义)
    #tableComment("表数据库访问层")
    public interface $!{tableName} extends BaseMapper<$!tableInfo.name> {
    
    }
    listParam
    ##导入宏定义
    $!define
    ##保存文件(宏定义)
    #save("/param", "ListParam.java")
    ##包路径(宏定义)
    #setPackageSuffix("param")
    ##自动导入包(全局变量)
    $!autoImport
    import $!{tableInfo.savePackageName}.common.PageParam;
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    
    
    @Data
    @ApiModel("查询参数")
    public class $!{tableInfo.name}ListParam extends PageParam {
    
    #foreach($column in $tableInfo.fullColumn)
        #if(${column.comment})@ApiModelProperty(value = "${column.comment}")#end
        private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
        
    #end
    }
    dto
    ##导入宏定义
    $!define
    ##保存文件(宏定义)
    #save("/dto", "Dto.java")
    ##包路径(宏定义)
    #setPackageSuffix("dto")
    ##自动导入包(全局变量)
    $!autoImport
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    
    
    @Data
    @ApiModel("对象返回值")
    public class $!{tableInfo.name}Dto {
    
    #foreach($column in $tableInfo.fullColumn)
        #if(${column.comment})@ApiModelProperty(value = "${column.comment}")#end
        private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
        
    #end
    
    }
    saveParam
    ##导入宏定义
    $!define
    ##保存文件(宏定义)
    #save("/param", "SaveParam.java")
    ##包路径(宏定义)
    #setPackageSuffix("param")
    ##自动导入包(全局变量)
    $!autoImport
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    
    
    @Data
    @ApiModel("保存参数")
    public class $!{tableInfo.name}SaveParam {
    
    #foreach($column in $tableInfo.fullColumn)
        #if(${column.comment})@ApiModelProperty(value = "${column.comment}")#end
        private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
        
    #end
    }
    updateParam
    ##导入宏定义
    $!define
    ##保存文件(宏定义)
    #save("/param", "UpdateParam.java")
    ##包路径(宏定义)
    #setPackageSuffix("param")
    ##自动导入包(全局变量)
    $!autoImport
    import $!{tableInfo.savePackageName}.common.*;
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    
    
    @Data
    @ApiModel("更新参数")
    public class $!{tableInfo.name}UpdateParam extends BaseParam {
    
    #foreach($column in $tableInfo.fullColumn)
        #if(${column.comment})@ApiModelProperty(value = "${column.comment}")#end
        private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
        
    #end
    }
    vo
    ##导入宏定义
    $!define
    ##保存文件(宏定义)
    #save("/vo", "Vo.java")
    ##包路径(宏定义)
    #setPackageSuffix("vo")
    ##自动导入包(全局变量)
    $!autoImport
    import $!{tableInfo.savePackageName}.common.*;
    import $!{tableInfo.savePackageName}.dto.*;
    import io.swagger.annotations.ApiModel;
    import lombok.Data;
    
    
    
    @Data
    @ApiModel("对象返回值")
    public class $!{tableInfo.name}Vo extends ResultDto {
    
        private $!{tableInfo.name}Dto data;
    
        public $!{tableInfo.name}Vo() {
        }
    
        public $!{tableInfo.name}Vo(Boolean success, String message) {
            super(success, message);
        }
    }
    listVo
    ##导入宏定义
    $!define
    ##保存文件(宏定义)
    #save("/vo", "ListVo.java")
    ##包路径(宏定义)
    #setPackageSuffix("vo")
    ##自动导入包(全局变量)
    $!autoImport
    import $!{tableInfo.savePackageName}.dto.*;
    import $!{tableInfo.savePackageName}.common.ListResultDto;
    import io.swagger.annotations.ApiModel;
    import lombok.Data;
    
    
    
    @Data
    @ApiModel("列表返回值")
    public class $!{tableInfo.name}ListVo extends ListResultDto<$!{tableInfo.name}Dto> {
    
       public $!{tableInfo.name}ListVo() {
        }
    
        public $!{tableInfo.name}ListVo(Boolean success, String message) {
            super(success, message);
        }
    }

     

    common 代码

    package com.zhang.common;
    
    import io.swagger.annotations.ApiModel;
    import lombok.Data;
    
    import java.util.List;
    
    @Data
    @ApiModel("BaseParam")
    public class BaseParam {
        private List<Integer> idList;
    
        private String startCreateTime;
    
        private String endCreateTime;
    
        private Integer status;
    }
    package com.zhang.common;
    
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    import java.util.ArrayList;
    import java.util.List;
    
    @Data
    @ApiModel("ListResultDto")
    public class ListResultDto<T> extends ResultDto {
    
        @ApiModelProperty(value = "总数")
        private Long total = 0L;
    
        @ApiModelProperty(value = "当前页")
        private Integer currentPage;
    
        @ApiModelProperty(value = "分页大小")
        private Integer pageSize;
    
        @ApiModelProperty(value = "列表数据")
        private List<T> list = new ArrayList();
    
        public ListResultDto() {
        }
    
        public ListResultDto(Boolean success, String message) {
            super.setMessage(message);
            super.setSuccess(success);
        }
    
    }
    package com.zhang.common;
    
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    @Data
    @ApiModel("PageParam")
    public class PageParam  extends BaseParam {
        @ApiModelProperty(value = "当前页")
        private Integer currentPage=1;
    
        @ApiModelProperty(value = "分页大小")
        private Integer pageSize=20;
    }
    package com.zhang.common;
    
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    @Data
    @ApiModel("接口统一处理结果")
    public class ResultDto {
    
        @ApiModelProperty(value = "状态码")
        private String code = "200";
    
        @ApiModelProperty(value = "结果标识符(true:成功,false:失败)")
        private Boolean success = false;
    
        @ApiModelProperty(value = "响应信息")
        private String message;
    
        public ResultDto() {
        }
    
        public ResultDto(Boolean success, String message) {
            this.success = success;
            this.message = message;
        }
    
        public void setErrorMessage(String message) {
            this.success = false;
            this.message = message;
        }
    
        public void setSuccessMessage(String message) {
            this.success = true;
            this.message = message;
        }
    
    
    }
    server:
      port: 8880
      servlet:
        contextPath: /
    
    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/cloud_disk?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
        username: root
        password: Zjr@121847
        druid:
          keep-alive: true
          initial-size: 5
          min-idle: 5
          max-active: 20
          # 配置获取连接等待超时的时间
          max-wait: 60000
          # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
          time-between-eviction-runs-millis: 60000
          # 配置一个连接在池中最小生存的时间,单位是毫秒
          min-evictable-idle-time-millis: 300000
          validation-query: SELECT 1 FROM DUAL
          test-while-idle: true
          test-on-borrow: false
          test-on-return: false
          web-stat-filter:
            enabled: true
            url-pattern: /*
            exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
          stat-view-servlet:
            enabled: true
            url-pattern: /druid/*
            reset-enable: false
            login-username: admin
            login-password: admin
            allow:
          # 连接泄露检查,打开removeAbandoned功能 , 连接从连接池借出后,长时间不归还,将触发强制回连接。回收周期随timeBetweenEvictionRunsMillis进行,如果连接为从连接池借出状态,并且未执行任何sql,并且从借出时间起已超过removeAbandonedTimeout时间,则强制归还连接到连接池中。
          remove-abandoned: true
          # 超时时间,秒
          remove-abandoned-timeout: 80
          # 关闭abanded连接时输出错误日志,这样出现连接泄露时可以通过错误日志定位忘记关闭连接的位置
          log-abandoned: true
          # 打开PSCache,并且指定每个连接上PSCache的大小
          pool-prepared-statements: true
          max-pool-prepared-statement-per-connection-size: 20
          # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
          filters: stat,wall,slf4j,config
          # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
          connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    
      application:
        name: video
      jackson:
        time-zone: GMT+8
        date-format: yyyy-MM-dd HH:mm:ss
      profiles:
        active: dev
      servlet:
        multipart:
          max-file-size: 102400000
          max-request-size: 102400000
      web:
        resources:
          static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${web.upload-path}
    
    #Mybatis配置
    mybatis:
      configuration:
        map-underscore-to-camel-case: true
        #打印SQL
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
      type-aliases-package: com.zhang.entity.**
      mapper-locations: classpath*:mapper/*.xml
    
    #分页插件配置
    pagehelper:
      autoRuntimeDialect: true
      # 当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页.也就是即使传入页数大于总页数,仍然会返回数据
      reasonable: false
      supportMethodsArguments: true
      params: count=countSql
     <dependencies>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <!-- 移除掉默认支持的 Tomcat -->
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <!-- 添加 Undertow 容器 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-undertow</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-aop</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>1.2.10</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.mybatis.spring.boot</groupId>
                        <artifactId>mybatis-spring-boot-starter</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
    
            <!--Swagger-UI API文档生产工具-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.8.0</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.8.0</version>
            </dependency>
    
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.2.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
                <version>1.3.2</version>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.1.10</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.18</version>
            </dependency>
    
        </dependencies>

     

  • 相关阅读:
    收藏的博客
    MVC 之 System.Web.Optimization找不到引用
    SQL Server 之 附加数据库出现“ 拒绝访问 ”
    Android Studio 之 环境搭建
    PD 之 连接数据库并导出数据及生成PDM文件
    Windows 之 可以Ping通服务器但无法使用服务器连接的共享打印机
    JQuery 之 在数据加载完成后才自动执行函数
    JavaScript 之 动态加载JS代码或JS文件
    JQuery 之 动态加载JS或JS文件
    JavaScript 之 解码类似eval(function(p,a,c,k,e,d){}))的JavaScript代码
  • 原文地址:https://www.cnblogs.com/zhangjinru123/p/15210118.html
Copyright © 2020-2023  润新知