#macro(GET_CHAR_COLUMN_LENGTH $column)## * 如果表列是char/varchar, 获取其最大字符长度, 否则为空字符串 * 参数: 列 * 结果保存在变量名为 $_char_column_length 字符串型 #set($_char_column_length="") #if($column.columnType.startsWith("char") || $column.columnType.startsWith("varchar")) #set($startLeft=$column.columnType.indexOf("(")) #if($startLeft != -1) #set($endRight=$column.columnType.indexOf(")", $startLeft)) #if($endRight != -1) #set($startLeft=$startLeft+1) #set($_char_column_length=$column.columnType.substring($startLeft, $endRight)) #end #end #end #end## GET_CHAR_COLUMN_LENGTH #macro(COLUMN_IS_NUMBER $column)## * 检查表列是否是数字型 * 参数: 列 * 结果保存在变量名为 $_column_is_number bool型 #set($_column_is_number=$column.columnType.startsWith("decimal") || $column.columnType.startsWith("tinyint") || $column.columnType.startsWith("mediumint") || $column.columnType.startsWith("int") || $column.columnType.startsWith("bigint") || $column.columnType.startsWith("smallint")) #end## COLUMN_IS_NUMBER #macro(GET_NUMBER_COLUMN_MIN_AND_PRECISION $column)## * 如果表列是数字型, 获取其最小值和浮点数部分精度, 否则为空字符串 * 参数: 列 * 最小值结果保存在变量名为 $_number_column_min 字符串型 * 浮点数部分精度结果保存在变量名为 $_number_column_precision 字符串型 #set($_number_column_min="") #set($_number_column_precision="") #if($column.columnType.contains("unsigned")) #set($_number_column_min="0") #end #set($startLeft=$column.columnType.indexOf("(")) #if($startLeft != -1) #set($endRight=$column.columnType.indexOf(")", $startLeft)) #if($endRight != -1) #set($startLeft=$startLeft+1) #set($internalText=$column.columnType.substring($startLeft, $endRight)) #set($splitIndex=$internalText.indexOf(",")) #if($splitIndex != -1) #set($splitIndex=$splitIndex+1) #set($_number_column_precision=$internalText.substring($splitIndex)) #end #end #end #end## GET_NUMBER_COLUMN_MIN_AND_PRECISION