MySQL-根据建表元数据信息-批量生成建表脚本及Java代码内容(单表)

本文介绍了如何根据MySQL中的建表元数据信息,批量生成建表脚本和Java代码,包括建表、生成SQL查询、XML配置、实体类、DAO与Controller代码等步骤。详细讲解了各个步骤的实现代码,提供了实用的数据库操作和字符串转换函数,旨在简化数据库管理和Java开发过程。

1,建表 caogao_stu_teacher_to_create_table,存基础元数据信息

--(此数据现在Excel中准备好,再导入数据库)

CREATE TABLE `caogao_stu_teacher_to_create_table` (
  `model_name` varchar(255) DEFAULT NULL,
  `table_comment` varchar(255) DEFAULT NULL,
  `table_comment2` varchar(255) DEFAULT NULL,
  `table_name` varchar(255) DEFAULT NULL,
  `column_name` varchar(255) DEFAULT NULL,
  `column_comment` varchar(255) DEFAULT NULL,
  `column_type` varchar(255) DEFAULT NULL,
  `xml_select_id` varchar(500) DEFAULT NULL,
  `entity_name` varchar(500) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2,建表,java_code_script,存生成的中间值内容:

CREATE TABLE `java_code_script` (
  `model_name` varchar(255) DEFAULT NULL COMMENT '模块名称(学校、教师、学生)',
  `table_name` varchar(255) DEFAULT NULL COMMENT '表名',
  `xml_select_id` varchar(500) DEFAULT NULL,
  `select_sql_script` varchar(1000) DEFAULT NULL COMMENT 'SQL查询脚本',
  `xml_script` varchar(1000) DEFAULT NULL,
  `entity_name` varchar(500) DEFAULT NULL,
  `entity_script` varchar(1000) DEFAULT NULL,
  `dao_script` varchar(1000) DEFAULT NULL,
  `service_script` varchar(1000) DEFAULT NULL,
  `service_impl_script` varchar(1000) DEFAULT NULL,
  `controller_script` varchar(1000) DEFAULT NULL,
  `table_comment` varchar(255) DEFAULT NULL,
  `table_comment2` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

 

3,根据Excel数据-批量生成建表脚本

--  批量生成建表语句 -代码实现
select distinct         concat(
                '\r\n-- ',
                t1.table_comment2,
                '\r\n',
                'DROP TABLE IF EXISTS ',
                t1.table_name,
                ';\r\n'
                'CREATE TABLE ',
                t1.table_name,
                ' (\r\n\t',
                'id varchar(50) DEFAULT NULL COMMENT ''id'',\r\n',
                'data_date varchar(20) DEFAULT NULL COMMENT ''数据日期'',\r\n',
                t3.merge_column,
                '\r\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT=''',
                t1.table_comment,
                ''';\r\n\r\n'    
        ) as create_table_sql
from caogao_stu_teacher_to_create_table t1
left join (
        select 
                t2.table_name,
                GROUP_CONCAT(
                        concat(
                            t2.column_name,
                            ' ',
                            t2.column_type,
                            ' COMMENT ''',
                            t2.column_comment,
                            '''\r\n'
                        )
                ) as merge_column
        from caogao_stu_teacher_to_create_table t2
        

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值