MySQL-根据建表元数据信息-批量生成建表脚本及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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以使用以下步骤生成Java数据源的DDL: 1. 获取Java数据源的元数据信息,包括名、列名、数据类型、长度等。 2. 根据元数据信息生成DDL语句。例如,可以使用StringBuilder类构DDL语句。 3. 将生成的DDL语句输出到控制台或写入文件中。 下面是一个简单的示例代码,仅供参考: ```java import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; public class GenerateDDL { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; try (Connection conn = DriverManager.getConnection(url, user, password)) { DatabaseMetaData metaData = conn.getMetaData(); ResultSet rs = metaData.getColumns(null, null, "my_table", null); StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE my_table ("); while (rs.next()) { String columnName = rs.getString("COLUMN_NAME"); String dataType = rs.getString("TYPE_NAME"); int columnSize = rs.getInt("COLUMN_SIZE"); boolean isNullable = rs.getBoolean("NULLABLE"); sb.append(columnName).append(" ").append(dataType).append("(").append(columnSize).append(")"); if (!isNullable) { sb.append(" NOT NULL"); } sb.append(", "); } sb.delete(sb.length() - 2, sb.length()); sb.append(");"); System.out.println(sb.toString()); } catch (SQLException e) { e.printStackTrace(); } } } ``` 这个例子使用Java的JDBC API来连接MySQL数据库,获取“my_table”的元数据信息,然后根据元数据信息生成DDL语句并输出到控制台。您可以根据自己的需要修改代码以适应不同的数据源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值