• easycode swagger模板


    easycode模板

    新增模板生成映射文件前记得在数据库字段类型映射位置(File->Settings-->Other Settings-->EasyCode-->Type Mapper)位置增加tinyint的对应关系:tinyint((\d+))?

    • entity.java

      ##引入宏定义
      $!{define.vm}
       
      ##使用宏定义设置回调(保存位置与文件后缀)
      #save("/entity", ".java")
       
      ##使用宏定义设置包后缀
      #setPackageSuffix("entity")
       
      ##使用全局变量实现默认包导入
      $!{autoImport.vm}
      import java.io.Serializable;
      import io.swagger.annotations.*;
      import lombok.Data;
       
      ##使用宏定义实现类注释信息
      #tableComment("实体类")
      @Data
      @ApiModel("$tableInfo.comment")
      public class $!{tableInfo.name} implements Serializable {
          private static final long serialVersionUID = $!tool.serial();
      #foreach($column in $tableInfo.fullColumn)
          #if(${column.comment})/**
          * ${column.comment}
          */#end
          
          @ApiModelProperty("$column.comment")
          private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
          
      #end
      }
      
    • mapper.java

      ##定义初始变量
      #set($tableName = $tool.append($tableInfo.name, "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 $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
      import org.apache.ibatis.annotations.Mapper;
      import org.apache.ibatis.annotations.Param;
      import org.springframework.stereotype.Repository;
      import java.util.List;
       
      /**
       * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层
       *
       * @author $!author
       * @since $!time.currTime()
       */
      @Mapper
      @Repository 
      public interface $!{tableName} {
       
          /**
           * 通过ID查询单条数据
           *
           * @param $!pk.name 主键
           * @return 实例对象
           */
          $!{tableInfo.name} queryById($!pk.shortType $!pk.name);
       
          /**
           * 查询指定行数据
           *
           * @param offset 查询起始位置
           * @param limit 查询条数
           * @return 对象列表
           */
          List<$!{tableInfo.name}> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);
       
       
          /**
           * 通过实体作为筛选条件查询
           *
           * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
           * @return 对象列表
           */
          List<$!{tableInfo.name}> queryAll($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
       
          /**
           * 新增数据
           *
           * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
           * @return 影响行数
           */
          int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
       
          /**
           * 修改数据
           *
           * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
           * @return 影响行数
           */
          int update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
       
          /**
           * 通过主键删除数据
           *
           * @param $!pk.name 主键
           * @return 影响行数
           */
          int deleteById($!pk.shortType $!pk.name);
       
      }
      
    • mapper.xml

      ##引入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">
       
          <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.parent.name}.$!tableInfo.obj.name
              where $!pk.obj.name = #{$!pk.name}
          </select>
       
          <!--查询指定行数据-->
          <select id="queryAllByLimit" resultMap="$!{tableInfo.name}Map">
              select
                #allSqlColumn()
       
              from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name
              limit #{offset}, #{limit}
          </select>
       
          <!--通过实体作为筛选条件查询-->
          <select id="queryAll" resultMap="$!{tableInfo.name}Map">
              select
                #allSqlColumn()
       
              from $!{tableInfo.obj.parent.name}.$!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.parent.name}.$!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)
              values (#foreach($column in $tableInfo.otherColumn)#{$!{column.name}}#if($velocityHasNext), #end#end)
          </insert>
       
          <!--通过主键修改数据-->
          <update id="update">
              update $!{tableInfo.obj.parent.name}.$!{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.parent.name}.$!{tableInfo.obj.name} where $!pk.obj.name = #{$!pk.name}
          </delete>
       
      </mapper>
      
    • service.java

      ##定义初始变量
      #set($tableName = $tool.append($tableInfo.name, "Service"))
      ##设置回调
      $!callback.setFileName($tool.append($tableName, ".java"))
      $!callback.setSavePath($tool.append($tableInfo.savePath, "/service"))
       
      ##拿到主键
      #if(!$tableInfo.pkColumn.isEmpty())
          #set($pk = $tableInfo.pkColumn.get(0))
      #end
       
      #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;
       
      import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
      import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;
      import org.springframework.stereotype.Service;
      import org.springframework.beans.factory.annotation.Autowired;
      import java.util.List;
       
      /**
       * $!{tableInfo.comment}($!{tableInfo.name})表服务实现类
       *
       * @author $!author
       * @since $!time.currTime()
       */
      @Service("$!tool.firstLowerCase($!{tableInfo.name})Service")
      public class $!{tableName} {
          @Autowired
          private $!{tableInfo.name}Mapper $!tool.firstLowerCase($!{tableInfo.name})Mapper;
       
          /**
           * 通过ID查询单条数据
           *
           * @param $!pk.name 主键
           * @return 实例对象
           */
          public $!{tableInfo.name} queryById($!pk.shortType $!pk.name) {
              return this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.queryById($!pk.name);
          }
       
          /**
           * 查询多条数据
           *
           * @param offset 查询起始位置
           * @param limit 查询条数
           * @return 对象列表
           */
          public List<$!{tableInfo.name}> queryAllByLimit(int offset, int limit) {
              return this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.queryAllByLimit(offset, limit);
          }
       
          /**
           * 新增数据
           *
           * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
           * @return 实例对象
           */
          public $!{tableInfo.name} insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {
              this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.insert($!tool.firstLowerCase($!{tableInfo.name}));
              return $!tool.firstLowerCase($!{tableInfo.name});
          }
       
          /**
           * 修改数据
           *
           * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
           * @return 实例对象
           */
          public $!{tableInfo.name} update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {
              this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.update($!tool.firstLowerCase($!{tableInfo.name}));
              return this.queryById($!{tool.firstLowerCase($!{tableInfo.name})}.get$!tool.firstUpperCase($pk.name)());
          }
       
          /**
           * 通过主键删除数据
           *
           * @param $!pk.name 主键
           * @return 是否成功
           */
          public boolean deleteById($!pk.shortType $!pk.name) {
              return this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.deleteById($!pk.name) > 0;
          }
      }
      
    • controller.java

      ##定义初始变量
      #set($tableName = $tool.append($tableInfo.name, "Controller"))
      ##设置回调
      $!callback.setFileName($tool.append($tableName, ".java"))
      $!callback.setSavePath($tool.append($tableInfo.savePath, "/controller"))
      ##拿到主键
      #if(!$tableInfo.pkColumn.isEmpty())
          #set($pk = $tableInfo.pkColumn.get(0))
      #end
       
      #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller;
       
      import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
      import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
      import org.springframework.web.bind.annotation.*;
      import io.swagger.annotations.Api;
      import io.swagger.annotations.ApiOperation;
      import io.swagger.annotations.ApiParam;
      import org.springframework.beans.factory.annotation.Autowired;
       
      /**
       * $!{tableInfo.comment}($!{tableInfo.name})表控制层
       *
       * @author $!author
       * @since $!time.currTime()
       */
      @Api(tags = "$!{tableInfo.comment}($!{tableInfo.name})") 
      @RestController
      @RequestMapping("$!tool.firstLowerCase($tableInfo.name)")
      public class $!{tableName} {
          /**
           * 服务对象
           */
          @Autowired
          private $!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;
       
          /**
           * 通过主键查询单条数据
           *
           * @param id 主键
           * @return 单条数据
           */
          @ApiOperation(value = "根据id查询 $!{tableInfo.comment}")
          @GetMapping("selectOne/{id}")
          public $!{tableInfo.name} selectOne(@ApiParam(value = "$!pk.comment ID") @PathVariable("id") $!pk.shortType id) {
              return this.$!{tool.firstLowerCase($tableInfo.name)}Service.queryById(id);
          }
       
      }
      

    效果:

  • 相关阅读:
    python3爬虫--反爬虫应对机制
    mongodb与mysql区别(超详细)
    cookie和session运行机制、区别
    flask轻量级框架入门
    python自定义元类metaclass,约束子类
    MongoDB ObjectId类型 序列化问题
    【python 内置模块】 返回一个规定长度的随机字符串
    使用PyMongo有多重,使用MongoClientwith的实例时必须小心 fork()
    MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。
    分布式文件系统架构HDFS、FastDFS、Haystack
  • 原文地址:https://www.cnblogs.com/lyhbky/p/16143579.html
Copyright © 2020-2023  润新知