ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

easycode swagger模板

2022-04-14 11:02:03  阅读:159  来源: 互联网

标签:tableInfo name tool firstLowerCase easycode import pk 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
     
    ##设置保存名称与保存位置
    $!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);
        }
     
    }
    

效果:

标签:tableInfo,name,tool,firstLowerCase,easycode,import,pk,swagger,模板
来源: https://www.cnblogs.com/lyhbky/p/16143579.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有