栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据库字段转成Java实体类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据库字段转成Java实体类

-- 下划线命名转小驼峰命名
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'; -- 表名

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324598.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号