-- 下划线命名转小驼峰命名
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* ',
-- 注释值
COLUMN_COMMENT,
'\n*/',
'\n',
-- 修饰符
'private ',
-- 数据类型
dataTypeMapping(DATA_TYPE),
' ',
-- 属性
underLine2LowerCamelCase (COLUMN_NAME),
';'
)
FROM
information_schema.`COLUMNS`
WHERE
TABLE_SCHEMA = 'mydb' -- 数据库名
AND TABLE_NAME = 'emp'; -- 表名
数据库字段转成Java实体类
最新推荐文章于 2023-12-28 16:31:25 发布
这篇博客介绍了两个MySQL函数的创建:`underLine2LowerCamelCase`用于将下划线命名转换为小驼峰命名,`dataTypeMapping`则将数据库中的数据类型映射为Java中的对应类型。示例代码展示了如何使用这两个函数从`mydb.emp`表中获取字段定义,生成Java Bean属性的声明。
摘要由CSDN通过智能技术生成