本篇文章给大家分享的是有关如何在IDEA中对EasyCode进行配置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
Type Mapper
varchar\\d+\))? java.lang.String char\\d+\))? java.lang.String text java.lang.String decimal\\d+\))? java.lang.Double decimal\\d+,\d+\))? java.lang.Double integer java.lang.Integer int\\d+\))? java.lang.Integer int4 java.lang.Integer int8 java.lang.Long bigint\\d+\))? java.lang.Long datetime\\d+\))? java.time.LocalDateTime timestamp java.time.LocalDateTime boolean java.lang.Boolean tinyint\\d+\))? java.lang.Integer smallint\\d+\))? java.lang.Integer double\\d+\))? java.lang.Double double\\d+,\d+\))? java.lang.Double
Template Setting
entity.java
##初始化定义 $!init ##引入宏定义 $!define ##使用宏定义设置回调(保存位置与文件后缀) #save"/entity", ".java") ##使用宏定义设置包后缀 #setPackageSuffix"entity") ##使用全局变量实现默认包导入 $!autoImport import java.io.Serializable; ##使用宏定义实现类注释信息 #tableComment"实体类") public class $!{tableInfo.name} implements Serializable { private static final long serialVersionUID = $!tool.serial); #foreach$column in $tableInfo.fullColumn) #if${column.comment})/** * ${column.comment} */#end private $!{tool.getClsNameByFullName$column.type)} $!{column.name}; #end public $!{tableInfo.name}) { } public $!{tableInfo.name}#foreach$column in $tableInfo.fullColumn)$!{tool.getClsNameByFullName$column.type)} $!column.name #if$velocityCount != $tableInfo.fullColumn.size)), #end#end) { #foreach$column in $tableInfo.fullColumn) this.$!column.name = $!column.name;#end } #foreach$column in $tableInfo.fullColumn) ##使用宏定义实现get,set方法 #getSetMethod$column) #end @Override public String toString) { StringBuilder str = new StringBuilder); str.append"$!{tableInfo.name}{"); #foreach $column in $tableInfo.fullColumn ) str.append"$!column.name=").appendthis.$!column.name)#if $foreach.hasNext ).append", ")#end; #end str.append'}'); return str.toString); } }
DTO.java
##导入宏定义 $!define ##保存文件(宏定义) #save"/dto", "DTO.java") ##包路径(宏定义) #setPackageSuffix"dto") ##自动导入包(全局变量) $!autoImport ##import com.baomidou.mybatisplus.extension.activerecord.Model; import java.io.Serializable; import lombok.Data; ##import com.baomidou.mybatisplus.annotation.IdType; ##import com.baomidou.mybatisplus.annotation.TableId; ##表注释(宏定义) #tableComment"DTO") @Data public class $!{tableInfo.name}DTO implements Serializable { private static final long serialVersionUID = $!tool.serial); #foreach$column in $tableInfo.fullColumn) #if${column.comment})/**${column.comment}*/#end 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.get0)) #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 java.util.List; #set$time=$!time.currTime)) #set$time=$time.substring0,11)) #set$time=$time.replace"-","/")) /** * <p> * $!{tableInfo.comment}$!{tableInfo.name})表数据库访问层 * </p> * * @author:$!author * @date:$!time */ @Mapper public interface $!{tableName} { /** * 通过ID查询单条数据 * * @param $!pk.name 主键 * @return 实例对象 */ $!{tableInfo.name} queryById$!pk.shortType $!pk.name); /** * 通过实体作为筛选条件查询 * * @param $!tool.firstLowerCase$!{tableInfo.name}) 实例对象 * @return 对象列表 */ List<$!{tableInfo.name}> queryAll$!{tableInfo.name} $!tool.firstLowerCase$!{tableInfo.name})); /** * 通过实体作为筛选条件查询条数 * * @param $!tool.firstLowerCase$!{tableInfo.name}) 实例对象 * @return 条数 */ int queryAllCount$!{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 insertSelective$!{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); /** * 批量新增 * @param recordList * @return 影响行数 */ int batchInsert@Param"recordList") List<$!{tableInfo.name}> recordList); /** * 批量修改 * @param recordList * @return 影响行数 */ int batchUpdate@Param"recordList") List<$!{tableInfo.name}> recordList); /** * 根据主键批量删除 * @param ids 主键s * @return 影响行数 */ int batchDelete@Param"ids") String[] ids); }
serviceImpl.java
##初始化定义 $!init ##定义初始变量 #set$tableName = $tool.append$tableInfo.name, "ServiceImpl")) ##设置回调 $!callback.setFileName$tool.append$tableName, ".java")) $!callback.setSavePath$tool.append$tableInfo.savePath, "/service/impl")) ##拿到主键 #if!$tableInfo.pkColumn.isEmpty)) #set$pk = $tableInfo.pkColumn.get0)) #end #if$tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl; import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper; import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; #set$time=$!time.currTime)) #set$time=$time.substring0,11)) #set$time=$time.replace"-","/")) /** * <p> * $!{tableInfo.comment}$!{tableInfo.name})表服务实现类 * </p> * * @author:$!author * @date:$!time */ @Service"/$!tool.firstLowerCase$!{tableInfo.name})Service") public class $!{tableName} implements $!{tableInfo.name}Service { @Autowired private $!{tableInfo.name}Mapper $!tool.firstLowerCase$!{tableInfo.name})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.get0)) #end #if$tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service; #set$time=$!time.currTime)) #set$time=$time.substring0,11)) #set$time=$time.replace"-","/")) /** * <p> * $!{tableInfo.comment}$!{tableInfo.name})表服务接口 * </p> * * @author:$!author * @date:$!time */ public interface $!{tableName} { }
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.get0)) #end #if$tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller; import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; #set$time=$!time.currTime)) #set$time=$time.substring0,11)) #set$time=$time.replace"-","/")) /** * <p> * $!{tableInfo.comment}$!{tableInfo.name})表控制层 * </p> * * @author:$!author * @date:$!time */ @RestController @RequestMapping"/$!tool.firstLowerCase$tableInfo.name)") public class $!{tableName} { @Autowired private $!{tableInfo.name}Service $!tool.firstLowerCase$tableInfo.name)Service; }
mysql-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.get0)) #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.name" jdbcType="$!column.ext.jdbcType"/> #end </resultMap> <!-- 伪列 --> <sql id="columns"> #foreach$column in $tableInfo.fullColumn) a.$!column.obj.name AS $!column.name #if$velocityCount != $tableInfo.fullColumn.size)),#end #end </sql> <!-- 查询条件 --> <sql id="whereSql"> <where> #foreach$column in $tableInfo.fullColumn) <if test="$!column.name != null#if$column.type.equals"java.lang.String")) and $!column.name != ''#end"> and a.$!column.obj.name = #{$!column.name} </if> #end </where> </sql> <!-- 通过ID查询单条数据 --> <select id="queryById" resultType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}"> select <include refid="columns"/> from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a where a.$!pk.obj.name = #{$!pk.name} </select> <!-- 通过实体作为筛选条件查询 --> <select id="queryAll" resultType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}"> select <include refid="columns"/> from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a <include refid="whereSql" /> </select> <!-- 通过实体作为筛选条件查询条数 --> <select id="queryAllCount" resultType="java.lang.Integer"> select count1) from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a <include refid="whereSql" /> </select> <!-- 新增数据 --> <insert id="insert" keyProperty="$!pk.name" useGeneratedKeys="true"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}#foreach$column in $tableInfo.fullColumn)$!column.obj.name#if$velocityHasNext), #end#end) values #foreach$column in $tableInfo.fullColumn)#{$!{column.name}}#if$velocityHasNext), #end#end) </insert> <!-- 新增选择列 --> <insert id="insertSelective" keyProperty="$!pk.name" useGeneratedKeys="true"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} <trim prefix="" suffix=")" suffixOverrides="," > #foreach$column in $tableInfo.fullColumn) <if test="$!column.name != null#if$column.type.equals"java.lang.String")) and $!column.name != ''#end"> $!column.obj.name, </if> #end </trim> <trim prefix="values " suffix=")" suffixOverrides="," > #foreach$column in $tableInfo.fullColumn) <if test="$!column.name != null#if$column.type.equals"java.lang.String")) and $!column.name != ''#end"> #{$!column.name,jdbcType=$!column.ext.jdbcType}, </if> #end </trim> </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> <!-- 批量新增 --> <insert id="batchInsert" parameterType="java.util.List"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} #foreach$column in $tableInfo.fullColumn)$!column.obj.name#if$velocityHasNext), #end#end ) values <foreach collection="recordList" index="index" item="item" separator=","> #foreach$column in $tableInfo.fullColumn)#{item.$!{column.name}}#if$velocityHasNext), #end#end ) </foreach> </insert> <!-- 批量修改 --> <update id="batchUpdate" parameterType="java.util.List"> update $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} <trim prefix="set" suffixOverrides=","> #foreach$column in $tableInfo.otherColumn) <trim prefix="$!column.obj.name =case $!pk.obj.name" suffix="end,"> <foreach collection="recordList" index="index" item="item"> <if test="item.$!column.name !=null "> when #{item.$!pk.name} then #{item.$!column.name} </if> <if test="item.$!column.name ==null "> when #{item.$!pk.name} then $!{tableInfo.obj.name}.$!column.obj.name </if> </foreach> </trim> #end </trim> where $!pk.obj.name in <foreach collection="recordList" index="index" item="item" separator=","> #{item.$!pk.name} </foreach> ) </update> <!-- 根据主键批量删除 --> <delete id="batchDelete" parameterType="java.lang.String"> delete from $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} where $!pk.obj.name in <foreach collection="ids" index="index" item="item" separator=","> #{item} </foreach> ) </delete> </mapper>
oracle-mapper.xml
##引入mybatis支持 $!mybatisSupport ##设置保存名称与保存位置 $!callback.setFileName$tool.append$!{tableInfo.name}, "Mapper.xml")) $!callback.setSavePath$tool.append$tableInfo.savePath, "/src/main/resources/mapper")) ##拿到主键 #if!$tableInfo.pkColumn.isEmpty)) #set$pk = $tableInfo.pkColumn.get0)) #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.name" jdbcType="$!column.ext.jdbcType"/> #end </resultMap> <!-- 伪列 --> <sql id="columns"> #foreach$column in $tableInfo.fullColumn) a.$!column.obj.name AS $!column.name #if$velocityCount != $tableInfo.fullColumn.size)),#end #end </sql> <!-- 查询条件 --> <sql id="whereSql"> <where> #foreach$column in $tableInfo.fullColumn) <if test="$!column.name != null#if$column.type.equals"java.lang.String")) and $!column.name != ''#end"> and a.$!column.obj.name = #{$!column.name} </if> #end </where> </sql> <!-- 通过ID查询单条数据 --> <select id="queryById" resultType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}"> select <include refid="columns"/> from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a where a.$!pk.obj.name = #{$!pk.name} </select> <!-- 通过实体作为筛选条件查询 --> <select id="queryAll" resultType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}"> select <include refid="columns"/> from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a <include refid="whereSql" /> </select> <!-- 通过实体作为筛选条件查询条数 --> <select id="queryAllCount" resultType="java.lang.Integer"> select count1) from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name a <include refid="whereSql" /> </select> <!-- 新增数据 --> <insert id="insert" keyProperty="$!pk.name" useGeneratedKeys="true"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}#foreach$column in $tableInfo.fullColumn)$!column.obj.name#if$velocityHasNext), #end#end) values #foreach$column in $tableInfo.fullColumn)#{$!{column.name}}#if$velocityHasNext), #end#end) </insert> <!-- 新增选择列 --> <insert id="insertSelective" keyProperty="$!pk.name" useGeneratedKeys="true"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} <trim prefix="" suffix=")" suffixOverrides="," > #foreach$column in $tableInfo.fullColumn) <if test="$!column.name != null#if$column.type.equals"java.lang.String")) and $!column.name != ''#end"> $!column.obj.name, </if> #end </trim> <trim prefix="values " suffix=")" suffixOverrides="," > #foreach$column in $tableInfo.fullColumn) <if test="$!column.name != null#if$column.type.equals"java.lang.String")) and $!column.name != ''#end"> #{$!column.name,jdbcType=$!column.ext.jdbcType}, </if> #end </trim> </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> <!-- 批量新增 --> <insert id="batchInsert" parameterType="java.util.List"> insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} #foreach$column in $tableInfo.fullColumn)$!column.obj.name#if$velocityHasNext), #end#end ) <foreach collection="recordList" index="index" item="item" separator=","> select #foreach$column in $tableInfo.fullColumn)#{item.$!{column.name}}#if$velocityHasNext), #end#end from dual ) </foreach> ) </insert> <!-- 批量修改 --> <update id="batchUpdate" parameterType="java.util.List"> begin <foreach collection="recordList" index="index" item="item" separator=";"> update $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} <set> #foreach$column in $tableInfo.otherColumn) $!column.obj.name = #{item.$!column.name} #end </set> where ID = #{item.$!pk.obj.name} </foreach> ;end; </update> <!-- 根据主键批量删除 --> <delete id="batchDelete" parameterType="java.lang.String"> delete from $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name} where $!pk.obj.name in <foreach collection="ids" index="index" item="item" separator=","> #{item} </foreach> ) </delete> </mapper>
Global Config
init
##初始化区域 ##去掉表的t_前缀 #if$tableInfo.obj.name.startsWith"t_")) $!tableInfo.setName$tool.getClassName$tableInfo.obj.name.substring2))) #end ##参考阿里巴巴开发手册,POJO 类中布尔类型的变量,都不要加 is 前缀,否则部分框架解析会引起序列化错误 #foreach$column in $tableInfo.fullColumn) #if$column.name.startsWith"is") && $column.type.equals"java.lang.Boolean")) $!column.setName$tool.firstLowerCase$column.name.substring2))) #end #end ##实现动态排除列 #set$temp = $tool.newHashSet"testCreateTime", "otherColumn")) #foreach$item in $temp) #set$newList = $tool.newArrayList)) #foreach$column in $tableInfo.fullColumn) #if$column.name!=$item) ##带有反回值的方法调用时使用$tool.call来消除返回值 $tool.call$newList.add$column)) #end #end ##重新保存 $tableInfo.setFullColumn$newList) #end ##对importList进行篡改 #set$temp = $tool.newHashSet)) #foreach$column in $tableInfo.fullColumn) #if!$column.type.startsWith"java.lang.")) ##带有反回值的方法调用时使用$tool.call来消除返回值 $tool.call$temp.add$column.type)) #end #end ##覆盖 #set$importList = $temp)
define
##(Velocity宏定义) ##定义设置表名后缀的宏定义,调用方式:#setTableSuffix"Test") #macrosetTableSuffix $suffix) #set$tableName = $!tool.append$tableInfo.name, $suffix)) #end ##定义设置包名后缀的宏定义,调用方式:#setPackageSuffix"Test") #macrosetPackageSuffix $suffix) #if$suffix!="")package #end#if$tableInfo.savePackageName!="")$!{tableInfo.savePackageName}.#{end}$!suffix; #end ##定义直接保存路径与文件名简化的宏定义,调用方式:#save"/entity", ".java") #macrosave $path $fileName) $!callback.setSavePath$tool.append$tableInfo.savePath, $path)) $!callback.setFileName$tool.append$tableInfo.name, $fileName)) #end ##定义表注释的宏定义,调用方式:#tableComment"注释信息") #macrotableComment $desc) #set$time=$!time.currTime)) #set$time=$time.substring0,11)) #set$time=$time.replace"-","/")) /** * <p> * $!{tableInfo.comment}$!{tableInfo.name})$desc * </p> * * @author:$!author * @date:$!time */ #end ##定义GET,SET方法的宏定义,调用方式:#getSetMethod$column) #macrogetSetMethod $column) public $!{tool.getClsNameByFullName$column.type)} get$!{tool.firstUpperCase$column.name)}) { return $!{column.name}; } public void set$!{tool.firstUpperCase$column.name)}$!{tool.getClsNameByFullName$column.type)} $!{column.name}) { #if${column.type.equals"java.lang.String")})this.$!{column.name} = $!{column.name}== null ? null : $!{column.name}.trim); #else this.$!{column.name} = $!{column.name};#end} #end
mybatisSupport
##针对Mybatis 进行支持,主要用于生成xml文件 #foreach$column in $tableInfo.fullColumn) ##储存列类型 $tool.call$column.ext.put"sqlType", $tool.getField$column.obj.dataType, "typeName"))) #if$tool.newHashSet"java.lang.String").contains$column.type)) #set$jdbcType="VARCHAR") #elseif$tool.newHashSet"java.lang.Boolean", "boolean").contains$column.type)) #set$jdbcType="BOOLEAN") #elseif$tool.newHashSet"java.lang.Byte", "byte").contains$column.type)) #set$jdbcType="BYTE") #elseif$tool.newHashSet"java.lang.Integer", "int", "java.lang.Short", "short").contains$column.type)) #set$jdbcType="INTEGER") #elseif$tool.newHashSet"java.lang.Long", "long").contains$column.type)) #set$jdbcType="INTEGER") #elseif$tool.newHashSet"java.lang.Float", "float", "java.lang.Double", "double").contains$column.type)) #set$jdbcType="NUMERIC") #elseif$tool.newHashSet"java.util.Date", "java.sql.Timestamp", "java.time.Instant", "java.time.LocalDateTime", "java.time.OffsetDateTime", " java.time.ZonedDateTime").contains$column.type)) #set$jdbcType="TIMESTAMP") #elseif$tool.newHashSet"java.sql.Date", "java.time.LocalDate").contains$column.type)) #set$jdbcType="TIMESTAMP") #else ##其他类型 #set$jdbcType="OTHER") #end $tool.call$column.ext.put"jdbcType", $jdbcType)) #end ##定义宏,查询所有列 #macroallSqlColumn)#foreach$column in $tableInfo.fullColumn)$column.obj.name#if$velocityHasNext), #end#end#end