-- 下划线命名转小驼峰命名 DELIMITER $$ DROp FUNCTION IF EXISTS underLine2LowerCamelCase$$ CREATE FUNCTION underLine2LowerCamelCase(name varchar(50)) RETURNS varchar(50) BEGIN DECLARE ret VARCHAr(50) DEFAULT ''; -- 下划线个数接受5个内,若多于5个自行修改下面值即可 declare v_max int unsigned default 5; SET ret=name; while v_max >0 do set ret=REPLACE(ret,SUBSTr(ret,INSTR(ret,'_'),2),SUBSTr(UPPER(SUBSTr(ret,INSTR(ret,'_'),2)),2)); set v_max=v_max-1; end while; return ret; END $$ DELIMITER ; -- 数据类型映射 DELIMITER $$ DROP FUNCTION IF EXISTS dataTypeMapping$$ CREATE FUNCTION dataTypeMapping (type VARCHAr(20)) RETURNS VARCHAr (20) BEGIN DECLARE ret VARCHAr(20) DEFAULT type; CASE UPPER(type) -- 布尔型 WHEN 'BIT' THEN SET ret ='Boolean'; -- 整型 WHEN 'INT' THEN SET ret ='Integer'; WHEN 'INTEGER' THEN SET ret ='Integer'; WHEN 'TINYINT' THEN SET ret ='Integer'; WHEN 'SMALLINT' THEN SET ret ='Integer'; WHEN 'MEDIUMINT' THEN SET ret ='Integer'; WHEN 'BIGINT' THEN SET ret ='Long'; -- 浮点型 WHEN 'DECIMAL' THEN SET ret ='BigDecimal'; WHEN 'FLOAT' THEN SET ret ='FLOAT'; WHEN 'DOUBLE' THEN SET ret ='DOUBLE'; -- 字符串类型 WHEN 'VARCHAR' THEN SET ret ='String'; WHEN 'CHAR' THEN SET ret ='String'; WHEN 'TEXT' THEN SET ret ='String'; -- 时间类型 WHEN 'DATETIME' THEN SET ret ='Date'; WHEN 'DATE' THEN SET ret ='Date'; WHEN 'TIME' THEN SET ret ='Time'; WHEN 'TIMESTAMP' THEN SET ret ='Timestamp'; WHEN 'DATETIME' THEN SET ret ='Timestamp'; -- 特殊类型按照以下格式添加即可 -- WHEN '数据库中类型大写' THEN SET ret ='Java中类型'; -- 其他类型不做映射 ELSE SET ret = type; END CASE; return ret; END $$ DELIMITER ; -- 获取字段 SELECT CONCAt( -- 注释部分 '', 'n', -- 修饰符 'private ', -- 数据类型 dataTypeMapping(DATA_TYPE), ' ', -- 属性 underLine2LowerCamelCase (COLUMN_NAME), ';' ) FROM information_schema.`COLUMNS` WHERe TABLE_SCHEMA = 'mydb' -- 数据库名 AND TABLE_NAME = 'emp'; -- 表名



