EasyCode代码生成mybatis

发布时间 2023-04-18 21:35:37作者: 咸鱼张

IDEA版本 2018.3

只有 mapper xml PO  VO BO

包含检验

 

按需求修改

 

 

{
  "author" : "makejava",
  "version" : "1.2.8",
  "userSecure" : "",
  "currTypeMapperGroupName" : "Default",
  "currTemplateGroupName" : "Default",
  "currColumnConfigGroupName" : "Default",
  "currGlobalConfigGroupName" : "Default",
  "typeMapper" : { },
  "template" : {
    "Default" : {
      "name" : "Default",
      "elementList" : [ {
        "name" : "entity.java.vm",
        "code" : "##引入宏定义\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/gen\", \".java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"gen\")\n\n##使用全局变量实现默认包导入\n$!{autoImport.vm}\nimport java.io.Serializable;\nimport lombok.Data;\nimport lombok.ToString;\nimport lombok.experimental.Accessors;\nimport io.swagger.annotations.ApiModel;\n##使用宏定义实现类注释信息\n#tableComment(\"实体类\")\n@Data\n@ToString\n@Accessors(chain = true)\n@ApiModel(\"${tableInfo.comment}-PO\")\npublic class $!{tableInfo.name} implements Serializable {\n    private static final long serialVersionUID = $!tool.serial();\n#foreach($column in $tableInfo.fullColumn)\n    #if(${column.comment})/**\n     * ${column.comment}\n     */#end\n\n    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n#end\n\n\n\n}\n"
      }, {
        "name" : "dao.java.vm",
        "code" : "##定义初始变量\n#set($tableName = $tool.append($tableInfo.name, \"Mapper\"))\n##设置回调\n$!callback.setFileName($tool.append($tableName, \".java\"))\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/gen\"))\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n    #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}gen;\n\nimport $!{tableInfo.savePackageName}.gen.$!{tableInfo.name};\nimport org.apache.ibatis.annotations.Param;\nimport org.springframework.data.domain.Pageable;\nimport java.util.List;\nimport io.swagger.annotations.ApiModel;\n/**\n * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层\n *\n * @author $!author\n * @since $!time.currTime()\n */\npublic interface $!{tableName} {\n\n    /**\n     * 通过ID查询单条数据\n     *\n     * @param $!pk.name 主键\n     * @return 实例对象\n     */\n    $!{tableInfo.name} queryById($!pk.shortType $!pk.name);\n\n    /**\n     * 查询指定行数据\n     *\n     * @param $!tool.firstLowerCase($!{tableInfo.name}) 查询条件\n     * @param pageable         分页对象\n     * @return 对象列表\n     */\n    List<$!{tableInfo.name}> queryAllByLimit($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}), @Param(\"pageable\") Pageable pageable);\n\n    /**\n     * 统计总行数\n     *\n     * @param $!tool.firstLowerCase($!{tableInfo.name}) 查询条件\n     * @return 总行数\n     */\n    long count($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n    /**\n     * 新增数据\n     *\n     * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n     * @return 影响行数\n     */\n    int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n    /**\n     * 批量新增数据(MyBatis原生foreach方法)\n     *\n     * @param entities List<$!{tableInfo.name}> 实例对象列表\n     * @return 影响行数\n     */\n    int insertBatch(@Param(\"entities\") List<$!{tableInfo.name}> entities);\n\n    /**\n     * 批量新增或按主键更新数据(MyBatis原生foreach方法)\n     *\n     * @param entities List<$!{tableInfo.name}> 实例对象列表\n     * @return 影响行数\n     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参\n     */\n    int insertOrUpdateBatch(@Param(\"entities\") List<$!{tableInfo.name}> entities);\n\n    /**\n     * 修改数据\n     *\n     * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n     * @return 影响行数\n     */\n    int update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n    /**\n     * 通过主键删除数据\n     *\n     * @param $!pk.name 主键\n     * @return 影响行数\n     */\n    int deleteById($!pk.shortType $!pk.name);\n\n}\n"
      }, {
        "name" : "mapper.xml.vm",
        "code" : "##引入mybatis支持\n$!{mybatisSupport.vm}\n\n##设置保存名称与保存位置\n$!callback.setFileName($tool.append($!{tableInfo.name}, \"Mapper.xml\"))\n##使用宏定义设置回调(保存位置与文件后缀)\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/gen\"))\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n    #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"$!{tableInfo.savePackageName}.gen.$!{tableInfo.name}Mapper\">\n\n    <resultMap type=\"$!{tableInfo.savePackageName}.gen.$!{tableInfo.name}VO\" id=\"$!{tableInfo.name}Map\">\n#foreach($column in $tableInfo.fullColumn)\n        <result property=\"$!column.name\" column=\"$!column.obj.name\" jdbcType=\"$!column.ext.jdbcType\"/>\n#end\n    </resultMap>\n\n    <!--查询单个-->\n    <select id=\"queryById\" resultMap=\"$!{tableInfo.name}Map\">\n        select\n          #allSqlColumn()\n\n        from $!tableInfo.obj.name\n        where $!pk.obj.name = #{$!pk.name}\n    </select>\n\n    <!--查询指定行数据-->\n    <select id=\"queryAllByLimit\" resultMap=\"$!{tableInfo.name}Map\">\n        select\n          #allSqlColumn()\n\n        from $!tableInfo.obj.name\n        <where>\n#foreach($column in $tableInfo.fullColumn)\n            <if test=\"$!column.name != null#if($column.type.equals(\"java.lang.String\")) and $!column.name != ''#end\">\n                and $!column.obj.name = #{$!column.name}\n            </if>\n#end\n        </where>\n        limit #{pageable.offset}, #{pageable.pageSize}\n    </select>\n\n    <!--统计总行数-->\n    <select id=\"count\" resultType=\"java.lang.Long\">\n        select count(1)\n        from $!tableInfo.obj.name\n        <where>\n#foreach($column in $tableInfo.fullColumn)\n            <if test=\"$!column.name != null#if($column.type.equals(\"java.lang.String\")) and $!column.name != ''#end\">\n                and $!column.obj.name = #{$!column.name}\n            </if>\n#end\n        </where>\n    </select>\n\n    <!--新增所有列-->\n    <insert id=\"insert\" keyProperty=\"$!pk.name\" useGeneratedKeys=\"true\">\n        insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)\n        values (#foreach($column in $tableInfo.otherColumn)#{$!{column.name}}#if($velocityHasNext), #end#end)\n    </insert>\n\n    <insert id=\"insertBatch\" keyProperty=\"$!pk.name\" useGeneratedKeys=\"true\">\n        insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)\n        values\n        <foreach collection=\"entities\" item=\"entity\" separator=\",\">\n        (#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)\n        </foreach>\n    </insert>\n\n    <insert id=\"insertOrUpdateBatch\" keyProperty=\"$!pk.name\" useGeneratedKeys=\"true\">\n        insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)\n        values\n        <foreach collection=\"entities\" item=\"entity\" separator=\",\">\n            (#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)\n        </foreach>\n        on duplicate key update\n        #foreach($column in $tableInfo.otherColumn)$!column.obj.name = values($!column.obj.name)#if($velocityHasNext),\n        #end#end\n\n    </insert>\n\n    <!--通过主键修改数据-->\n    <update id=\"update\">\n        update $!{tableInfo.obj.name}\n        <set>\n#foreach($column in $tableInfo.otherColumn)\n            <if test=\"$!column.name != null#if($column.type.equals(\"java.lang.String\")) and $!column.name != ''#end\">\n                $!column.obj.name = #{$!column.name},\n            </if>\n#end\n        </set>\n        where $!pk.obj.name = #{$!pk.name}\n    </update>\n\n    <!--通过主键删除-->\n    <delete id=\"deleteById\">\n        delete from $!{tableInfo.obj.name} where $!pk.obj.name = #{$!pk.name}\n    </delete>\n\n</mapper>\n"
      }, {
        "name" : "vo.java.vm",
        "code" : "##引入宏定义\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/gen\", \"VO.java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"gen\")\n\n##使用全局变量实现默认包导入\n$!{autoImport.vm}\nimport java.io.Serializable;\nimport lombok.Data;\nimport lombok.ToString;\nimport lombok.experimental.Accessors;\nimport io.swagger.annotations.ApiModelProperty;\nimport io.swagger.annotations.ApiModel;\n##使用宏定义实现类注释信息\n#tableComment(\"实体类\")\n@Data\n@ToString\n@Accessors(chain = true)\n@ApiModel(\"${tableInfo.comment}-VO\")\npublic class $!{tableInfo.name}VO implements Serializable {\n    private static final long serialVersionUID = $!tool.serial();\n#foreach($column in $tableInfo.fullColumn)\n    #if(${column.comment})/**\n     * ${column.comment}\n     */#end\n    @ApiModelProperty(\"${column.comment}\")\n    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n#end\n\n\n\n}\n"
      }, {
        "name" : "editBo.java.vm",
        "code" : "##引入宏定义\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/gen\", \"EditRequest.java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"gen\")\n\n##使用全局变量实现默认包导入\n$!{autoImport.vm}\nimport java.io.Serializable;\nimport lombok.Data;\nimport lombok.ToString;\nimport lombok.experimental.Accessors;\nimport io.swagger.annotations.ApiModelProperty;\nimport io.swagger.annotations.ApiModel;\nimport javax.validation.constraints.NotEmpty;\nimport javax.validation.constraints.NotNull;\n##使用宏定义实现类注释信息\n#tableComment(\"实体类\")\n@Data\n@ToString\n@Accessors(chain = true)\n@ApiModel(\"${tableInfo.comment}-编辑Request\")\npublic class $!{tableInfo.name}EditRequest implements Serializable {\n    private static final long serialVersionUID = $!tool.serial();\n#foreach($column in $tableInfo.fullColumn)\n    #if(${column.comment})/**\n     * ${column.comment}\n     */#end\n    \n    #if(${column.shortType}==\"String\")\n    @NotEmpty(message = \"${tableInfo.name}EditRequest.$!{column.name}.not.Empty\")\n      #else\n    @NotNull(message = \"${tableInfo.name}EditRequest.$!{column.name}.not.Null\")\n     #end \n    @ApiModelProperty(\"${column.comment}\")\n    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n#end\n\n\n\n}\n"
      }, {
        "name" : "addBo.java.vm",
        "code" : "##引入宏定义\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/gen\", \"AddRequest.java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"gen\")\n\n##使用全局变量实现默认包导入\n$!{autoImport.vm}\nimport java.io.Serializable;\nimport lombok.Data;\nimport lombok.ToString;\nimport lombok.experimental.Accessors;\nimport io.swagger.annotations.ApiModelProperty;\nimport io.swagger.annotations.ApiModel;\nimport javax.validation.constraints.NotEmpty;\nimport javax.validation.constraints.NotNull;\n##使用宏定义实现类注释信息\n#tableComment(\"实体类\")\n@Data\n@ToString\n@Accessors(chain = true)\n@ApiModel(\"${tableInfo.comment}-添加Request\")\npublic class $!{tableInfo.name}AddRequest implements Serializable {\n    private static final long serialVersionUID = $!tool.serial();\n#foreach($column in $tableInfo.fullColumn)\n    #if(${column.comment})/**\n     * ${column.comment}\n     */#end\n    \n    #if(${column.shortType}==\"String\")\n    @NotEmpty(message = \"${tableInfo.name}EditRequest.$!{column.name}.not.Empty\")\n      #else\n    @NotNull(message = \"${tableInfo.name}EditRequest.$!{column.name}.not.Null\")\n     #end \n    @ApiModelProperty(\"${column.comment}\")\n    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n#end\n\n\n\n}\n"
      } ]
    }
  },
  "columnConfig" : { },
  "globalConfig" : { }
}