文章目录
背景
在平时开发接口的时候,经常会根据接口文档将数据插入第三方数据库的情况,本篇我们介绍一下,读取excel将字段提取出来生成创表的sql。非常适用。
快速开始
话不多说,直接上代码。
表和列实体类
**
* 实体表信息
*/
@Data
@TableName("`table_entity`")
public class TableEntity {
@TableId(value = "table_id", type = IdType.AUTO)
private Integer tableId;
//表名
@TableField(value = "table_name")
private String tableName;
//表注释
@TableField(value = "table_comment")
private String tableComment;
//数据库名
@TableField(value = "db_name")
private String databaseName;
//数据库类型 ORACLE,MSSQL,MYSQL
@TableField(value = "db_type")
private String databaseType;
//数据库SCHEMA
@TableField(value = "table_schema")
private String tableSchema;
//实体列名字
private List<ColumnEntity> tableColumns;
@Data
@TableName("`column_entity`")
public class ColumnEntity {
@TableId(value = "column_id", type = IdType.AUTO)
@ExcelProperty(value="序号")
private Integer columnId;
//表的ID
@ExcelProperty(value="表名ID")
@TableField("table_id")
private Integer tableId;
//列名
@ExcelProperty(value="列名")
@TableField("column_name")
private String columnName;
//列注释
@ExcelProperty(value="列注释")
@TableField("column_desc")
private String ColumnDesc;
//类型
@ExcelProperty(value="数据类型")
@TableField("column_type")
private String columnType;
//长度
@ExcelProperty(value="长度")
@TableField("column_len")
private String columnLen;
//精度
@ExcelProperty(value="精度")
@TableField("precision")
private String precision;
//是否主键 Y true 都默认是主键
@ExcelProperty(value="是否主键")
@TableField("isPrimaryKey")
private String isPrimaryKey;
//是否允许为空 Y true 不允许为空
@ExcelProperty(value="是否允许为空")
@TableField("isNotNull")
private String isNotNull;
//是否索引列,方便进行生成建表语句的时候进行生成索引
@ExcelProperty(value="是否索引列")
@TableField("isIdxCol")
private String isIdxCol;
}
建表语句
-- test.table_entity definition
CREATE TABLE `table_entity` (
`table_id` int NOT NULL AUTO_INCREMENT COMMENT '表主键',
`table_name` varchar(100) NOT NULL COMMENT '表名',
`table_comment` varchar(200) DEFAULT NULL COMMENT '表注释',
`db_name` varchar(10) DEFAULT NULL COMMENT '表对应的数据库名字',
`db_type` varchar(10) DEFAULT NULL COMMENT '数据库类型',
`table_schema` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '表对应的schema',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`create_by` varchar(100) DEFAULT NULL COMMENT '创建人',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`update_by` varchar(100) DEFAULT NULL COMMENT '更新人',
PRIMARY KEY (`table_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='表实体信息';
-- test.column_entity definition
CREATE TABLE `column_entity` (
`column_id` int NOT NULL AUTO_INCREMENT COMMENT '列序号',
`table_id` int NOT NULL COMMENT '表信息ID',
`column_name` varchar(100) NOT NULL COMMENT '列名',
`column_desc` varchar(100) DEFAULT NULL COMMENT '列注释',
`column_type` varchar(100) NOT NULL COMMENT '数据类型',
`column_len` int DEFAULT NULL COMMENT '列长度',
`precision` int DEFAULT NULL COMMENT '精度',
`isPrimaryKey` varchar(1) DEFAULT NULL COMMENT '是否是主键',
`isNotNull` varchar(1) DEFAULT NULL COMMENT '是否允许为空',
`isIdxCol` varchar(1) DEFAULT NULL COMMENT '是否索引列',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`create_by` varchar(10) DEFAULT NULL COMMENT '创建人',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`update_by` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
PRIMARY KEY (`column_id`),
KEY `column_entity_column_name_IDX` (`column_name`) USING BTREE,
KEY `column_entity_FK` (`table_id`),
CONSTRAINT `column_entity_FK` FOREIGN KEY (`table_id`) REFERENCES `table_entity` (`table_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='列信息表';
mapper类接口
/**
* 表实体信息映射
*/
@Mapper
public interface TableEntityMapper extends BaseMapper<TableEntity> {
}
/**
* 实体类映射接口
*/
@Mapper
public interface ColumnEntityMapper extends BaseMapper<ColumnEntity> {
}
创建表辅助类
目前写的支持mysql,sqlsever,oracle,需要可以自行修改,代码可以合并一下,现在分开的。
package com.elite.springboot.utils;
import com.elite.springboot.entity.ColumnEntity;
import com.elite.springboot.entity.ColumnTypeConstant;
import com.elite.springboot.entity.TableEntity;
import java.util.List;
/**
* 创建表辅助类
* create database.table(
* column type isprimarykey isnull default comment '',
* column2 type ,
* ....
* )
* 列顺序
* 1.mysql: 字段 类型 约束 默认值 注释
* 2.oracle: 字段 类型 约束 默认值 注释单独进行拼接一个串。
* 3.mssql:
*/
public class CreateTableHelper {
/**
* @Param:将实体类转换为mysql创表的sql
* @return:
*/
public static String getMysqlSqlByConvertEntity(TableEntity tableEntity) {
StringBuffer sql = new StringBuffer();
//存在则删除表
sql.append("DROP TABLE IF EXISTS "+tableEntity.getTableName()+";");
sql.append("CREATE TABLE `");
sql.append(tableEntity.getDatabaseName());
sql.append("`.`");
sql.append(tableEntity.getTableName());
sql.append("` (");
// CREATE TABLE `databaseName`.`tablePhysicalName` (
List<ColumnEntity> columns = tableEntity.getTableColumns();
// 主键列
String primaryKeyColumn = null;
//
int i = 0;
// 获取主键
for (ColumnEntity column : columns) {
// 将pk为true的设为主键
if ("true".equals(column.getIsPrimaryKey()) || "Y".equals(column.getIsPrimaryKey())) {
primaryKeyColumn = column.getColumnName();
break;
}
}
//循环列拼接动态的sql的顺序:
//1.mysql: 字段 类型 约束 默认值 注释
//2.oracle: 字段 类型 约束 默认值 注释单独进行拼接一个串。
//3.mssql:
for (ColumnEntity column : columns) {
sql.append(" `");
sql.append(column.getColumnName().trim());
sql.append("` ");
// `physicalColumnName`
// 根据NOT NULL 来拼接
if ("Y".equals(column.getIsNotNull()) || "true".equals(column.getIsNotNull())) { // 如果不允许为空,则拼接NOT NULL
//类型
String type = column.getColumnType().toLowerCase();
if (type.indexOf("varchar") != -1) {
type = ColumnTypeConstant.VARCHAR;
} else if (type.indexOf("number") != -1) {
type = ColumnTypeConstant.INT;
//默认长度
if (column.getColumnLen() == null || column.getColumnLen().isEmpty()) {
column.setColumnLen("11");
}
} else if (type.indexOf("char") != -1) {
type = ColumnTypeConstant.CHAR;
}
// 根据类型选择是否拼接长度
if (ColumnTypeConstant.CHAR.equals(type) || ColumnTypeConstant.VARCHAR.equals(type)) { // 文本需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(") CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '");
} else if (ColumnTypeConstant.TEXT.equals(type) || ColumnTypeConstant.LONG_TEXT.equals(type)) { // 文本不需要拼接长度
sql.append(type);
sql.append(" CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '");
} else if (ColumnTypeConstant.DATE.equals(type)) { // 时间不需要拼接长度
sql.append(type);
sql.append(" NOT NULL COMMENT '");
} else if (ColumnTypeConstant.DATE_TIME.equals(type) || ColumnTypeConstant.TIME_STAMP.equals(type)) { // 时间需要拼接长度 并且长度为0
sql.append(type);
sql.append("(0) NOT NULL COMMENT '");
} else if (ColumnTypeConstant.INT.equals(type)) { // 数字需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(") NOT NULL COMMENT '");
}
} else { // 如果允许为空,则拼接 NULL DEFAULT NULL
String type = column.getColumnType().toLowerCase();
//类型转换
if (type.indexOf("varchar") != -1) {
type = ColumnTypeConstant.VARCHAR;
} else if (type.indexOf("number") != -1) {
type = ColumnTypeConstant.INT;
//默认长度
if (column.getColumnLen() == null || column.getColumnLen().isEmpty()) {
column.setColumnLen("11");
}
} else if (type.indexOf("char") != -1) {
type = ColumnTypeConstant.CHAR;
}
// 根据类型选择是否拼接长度
if (ColumnTypeConstant.CHAR.equals(type) || ColumnTypeConstant.VARCHAR.equals(type)) { // 文本需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(") CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '");
} else if (ColumnTypeConstant.TEXT.equals(type) || ColumnTypeConstant.LONG_TEXT.equals(type)) { // 文本不需要拼接长度
sql.append(type);
sql.append(" CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '");
} else if (ColumnTypeConstant.DATE.equals(type)) { // 时间不需要拼接长度
sql.append(type);
sql.append(" NULL DEFAULT NULL COMMENT '");
} else if (ColumnTypeConstant.DATE_TIME.equals(type) || ColumnTypeConstant.TIME_STAMP.equals(type)) { // 时间需要拼接长度 并且长度为0
sql.append(type);
sql.append("(0) NULL DEFAULT NULL COMMENT '");
} else if (ColumnTypeConstant.INT.equals(type) || ColumnTypeConstant.BIGINT.equals(type) || ColumnTypeConstant.LONG.equals(type)) { // 数字需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(") NULL DEFAULT NULL COMMENT '");
}
}
i++;
// 拼接逻辑列名/如果为最后一个字段就不拼接,
if (columns.size() == i && primaryKeyColumn == null) {
sql.append(column.getColumnDesc());
sql.append("'");
} else {
sql.append(column.getColumnDesc());
sql.append("',");
}
}
// 拼接主键
if (primaryKeyColumn != null) {
sql.append(" PRIMARY KEY (`");
sql.append(primaryKeyColumn);
sql.append("`) USING BTREE ) ");
} else {
sql.append(") ");
}
// 拼接引擎和逻辑表名
sql.append("ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '");
sql.append(tableEntity.getTableComment());
sql.append("' ROW_FORMAT = Compact;");
System.out.println(sql.toString());
return sql.toString();
}
/**
* @Param:将实体类转换为oracle创表的sql
* @return:
*/
public static String getOracleSqlByConvertEntity(TableEntity tableEntity) {
StringBuffer sql = new StringBuffer();
//删表默认注释掉
sql.append("--DROP TABLE "+tableEntity.getTableName()+";");
StringBuffer comments = new StringBuffer();
sql.append("CREATE TABLE `");
sql.append(tableEntity.getDatabaseName());
sql.append("`.`");
sql.append(tableEntity.getTableName());
sql.append("` (");
// CREATE TABLE `databaseName`.`tablePhysicalName` (
List<ColumnEntity> columns = tableEntity.getTableColumns();
//获取表名注释
comments.append("COMMENT ON TABLE "+ tableEntity.getTableName()+" is '"+tableEntity.getTableComment() +"';");
// 主键列
String primaryKeyColumn = null;
int i = 0;
// 获取主键
for (ColumnEntity column : columns) {
// 将pk为true的设为主键
if ("true".equals(column.getIsPrimaryKey()) || "Y".equals(column.getIsPrimaryKey())) {
primaryKeyColumn = column.getColumnName();
break;
}
}
//循环列拼接动态的sql的顺序:
//1.mysql: 字段 类型 约束 默认值 注释
//2.oracle: 字段 类型 约束 默认值 注释单独进行拼接一个串。
//3.mssql:
for (ColumnEntity column : columns) {
sql.append(" `");
sql.append(column.getColumnName().trim());
sql.append("` ");
// `physicalColumnName`
// 根据NOT NULL 来拼接
if ("Y".equals(column.getIsNotNull()) || "true".equals(column.getIsNotNull())) { // 如果不允许为空,则拼接NOT NULL
//类型
String type = column.getColumnType().toLowerCase();
if (type.indexOf("varchar") != -1) {
type = ColumnTypeConstant.VARCHAR;
} else if (type.indexOf("number") != -1) {
type = ColumnTypeConstant.INT;
//默认长度
if (column.getColumnLen() == null || column.getColumnLen().isEmpty()) {
column.setColumnLen("11");
}
} else if (type.indexOf("char") != -1) {
type = ColumnTypeConstant.CHAR;
}
// 根据类型选择是否拼接长度
if (ColumnTypeConstant.CHAR.equals(type) || ColumnTypeConstant.VARCHAR.equals(type)) { // 文本需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(")");
} else if (ColumnTypeConstant.TEXT.equals(type) || ColumnTypeConstant.LONG_TEXT.equals(type)) { // 文本不需要拼接长度
sql.append(type);
sql.append(" '");
} else if (ColumnTypeConstant.DATE.equals(type)) { // 时间不需要拼接长度
sql.append(type);
sql.append(" NOT NULL ");
} else if (ColumnTypeConstant.DATE_TIME.equals(type) || ColumnTypeConstant.TIME_STAMP.equals(type)) { // 时间需要拼接长度 并且长度为0
sql.append(type);
sql.append("(0) NOT NULL ");
} else if (ColumnTypeConstant.INT.equals(type)) { // 数字需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(") NOT NULL ");
}
} else { // 如果允许为空,则拼接 NULL DEFAULT NULL
String type = column.getColumnType().toLowerCase();
//类型转换
if (type.indexOf("varchar") != -1) {
type = ColumnTypeConstant.VARCHAR;
} else if (type.indexOf("number") != -1) {
type = ColumnTypeConstant.INT;
//默认长度
if (column.getColumnLen() == null || column.getColumnLen().isEmpty()) {
column.setColumnLen("11");
}
} else if (type.indexOf("char") != -1) {
type = ColumnTypeConstant.CHAR;
}
// 根据类型选择是否拼接长度
if (ColumnTypeConstant.CHAR.equals(type) || ColumnTypeConstant.VARCHAR.equals(type)) { // 文本需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(") ");
} else if (ColumnTypeConstant.TEXT.equals(type) || ColumnTypeConstant.LONG_TEXT.equals(type)) { // 文本不需要拼接长度
sql.append(type);
sql.append(" ");
} else if (ColumnTypeConstant.DATE.equals(type)) { // 时间不需要拼接长度
sql.append(type);
sql.append(" ");
} else if (ColumnTypeConstant.DATE_TIME.equals(type) || ColumnTypeConstant.TIME_STAMP.equals(type)) { // 时间需要拼接长度 并且长度为0
sql.append(type);
sql.append("(0) ");
} else if (ColumnTypeConstant.INT.equals(type) || ColumnTypeConstant.BIGINT.equals(type) || ColumnTypeConstant.LONG.equals(type)) { // 数字需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(") ");
}
}
i++;
// 拼接逻辑列名/如果为最后一个字段就不拼接,
if (columns.size() == i && primaryKeyColumn == null) {
sql.append("");
} else {
sql.append(",");
}
//每一列的注释
comments.append( "COMMENT ON COLUMN "+tableEntity.getTableName()+"."+column.getColumnName()+" IS '" + column.getColumnDesc()+"';");
}
// 拼接主键
if (primaryKeyColumn != null) {
sql.append(" PRIMARY KEY (`");
sql.append(primaryKeyColumn);
sql.append("`)); ");
} else {
sql.append(") ;");
}
System.out.println("sql:"+sql.toString());
System.out.println("comment:"+comments.toString());
return sql.toString()+comments.toString();
}
/**
* @Param:将实体类转换为mssql创表的sql
* @return:
*/
public static String getMSSQLSqlByConvertEntity(TableEntity tableEntity) {
//建表字段的sql
StringBuffer sql = new StringBuffer();
//判断是否存在存在进行删除
sql.append("IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].["+tableEntity.getTableName()+"]') AND type in (N'U')");
sql.append("DROP TABLE [dbo].["+tableEntity.getTableName()+"];");
sql.append("[dbo].["+tableEntity.getTableName()+"]");
//表注释
StringBuffer comments = new StringBuffer();
comments.append("EXEC sp_addextendedproperty 'MS_Description', '"+tableEntity.getTableComment()+"', 'SCHEMA', dbo, 'table', "+tableEntity.getTableName()+", null, null;");
// CREATE TABLE `databaseName`.`tablePhysicalName` (
List<ColumnEntity> columns = tableEntity.getTableColumns();
// 主键列
String primaryKeyColumn = null;
//
int i = 0;
// 获取主键
for (ColumnEntity column : columns) {
// 将pk为true的设为主键
if ("true".equals(column.getIsPrimaryKey()) || "Y".equals(column.getIsPrimaryKey())) {
primaryKeyColumn = column.getColumnName();
break;
}
}
//循环列拼接动态的sql的顺序:
for (ColumnEntity column : columns) {
sql.append(" `");
sql.append(column.getColumnName().trim());
sql.append("` ");
// `physicalColumnName`
// 根据NOT NULL 来拼接
if ("Y".equals(column.getIsNotNull()) || "true".equals(column.getIsNotNull())) { // 如果不允许为空,则拼接NOT NULL
//类型
String type = column.getColumnType().toLowerCase();
if (type.indexOf("varchar") != -1) {
type = ColumnTypeConstant.VARCHAR;
} else if (type.indexOf("number") != -1) {
type = ColumnTypeConstant.INT;
//默认长度
if (column.getColumnLen() == null || column.getColumnLen().isEmpty()) {
column.setColumnLen("11");
}
} else if (type.indexOf("char") != -1) {
type = ColumnTypeConstant.CHAR;
}
// 根据类型选择是否拼接长度
if (ColumnTypeConstant.CHAR.equals(type) || ColumnTypeConstant.VARCHAR.equals(type)) { // 文本需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(")");
} else if (ColumnTypeConstant.TEXT.equals(type) || ColumnTypeConstant.LONG_TEXT.equals(type)) { // 文本不需要拼接长度
sql.append(type);
sql.append(" ");
} else if (ColumnTypeConstant.DATE.equals(type)) { // 时间不需要拼接长度
sql.append(type);
sql.append(" NOT NULL");
} else if (ColumnTypeConstant.DATE_TIME.equals(type) || ColumnTypeConstant.TIME_STAMP.equals(type)) { // 时间需要拼接长度 并且长度为0
sql.append(type);
sql.append("(0) NOT NUL");
} else if (ColumnTypeConstant.INT.equals(type)) { // 数字需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(") NOT NULL");
}
} else { // 如果允许为空,则拼接 NULL DEFAULT NULL
String type = column.getColumnType().toLowerCase();
//类型转换
if (type.indexOf("varchar") != -1) {
type = ColumnTypeConstant.VARCHAR;
} else if (type.indexOf("number") != -1) {
type = ColumnTypeConstant.INT;
//默认长度
if (column.getColumnLen() == null || column.getColumnLen().isEmpty()) {
column.setColumnLen("11");
}
} else if (type.indexOf("char") != -1) {
type = ColumnTypeConstant.CHAR;
}
// 根据类型选择是否拼接长度
if (ColumnTypeConstant.CHAR.equals(type) || ColumnTypeConstant.VARCHAR.equals(type)) { // 文本需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(") ");
} else if (ColumnTypeConstant.TEXT.equals(type) || ColumnTypeConstant.LONG_TEXT.equals(type)) { // 文本不需要拼接长度
sql.append(type);
sql.append(" ");
} else if (ColumnTypeConstant.DATE.equals(type)) { // 时间不需要拼接长度
sql.append(type);
sql.append(" ");
} else if (ColumnTypeConstant.DATE_TIME.equals(type) || ColumnTypeConstant.TIME_STAMP.equals(type)) { // 时间需要拼接长度 并且长度为0
sql.append(type);
sql.append("(0) ");
} else if (ColumnTypeConstant.INT.equals(type) || ColumnTypeConstant.BIGINT.equals(type) || ColumnTypeConstant.LONG.equals(type)) { // 数字需要拼接长度
sql.append(type);
sql.append("(");
sql.append(column.getColumnLen());
sql.append(") ");
}
}
i++;
// 拼接逻辑列名/如果为最后一个字段就不拼接,
if (columns.size() == i && primaryKeyColumn == null) {
} else {
sql.append(",");
}
//追加注释表的sql
comments.append("EXEC sp_addextendedproperty 'MS_Description', '"+column.getColumnDesc()+"', 'SCHEMA', dbo, 'table', "+tableEntity.getTableName()+", 'column', "+column.getColumnName()+";");
}
// 拼接主键
if (primaryKeyColumn != null) {
sql.append(", PRIMARY KEY (`");
sql.append(primaryKeyColumn);
sql.append("`); ");
} else {
sql.append("); ");
}
System.out.println(sql.toString());
System.out.println(comments.toString());
return sql.toString()+comments.toString();
}
}
测试
保存信息到数据库
@Test
public void test(){
//插入主表ID
TableEntity tableEntity = new TableEntity();
tableEntity.setTableName("table1");
tableEntity.setTableComment("测试表");
tableEntity.setDatabaseName("test");
tableEntity.setDatabaseType("mysql");
tableEntity.setTableSchema("");
tableEntityMapper.insert(tableEntity);
ColumnEntity columnEntity = new ColumnEntity();
columnEntity.setColumnName("test");
columnEntity.setTableId(1);
columnEntity.setColumnDesc("测试列");
columnEntity.setColumnType("int");
columnEntity.setColumnLen("30");
columnEntity.setIsPrimaryKey("Y");
columnEntity.setIsNotNull("N");
columnEntityMapper.insert(columnEntity);
}
生成sql
@Test
public void shouldAnswerWithTrue() {
List<ColumnEntity> columns = new ArrayList<>();
ColumnEntity column1 = new ColumnEntity();
column1.setColumnName("id");
column1.setColumnDesc("主键");
column1.setColumnType("int");
column1.setColumnLen("30");
column1.setIsPrimaryKey("Y");
column1.setIsNotNull("true");
ColumnEntity column2 = new ColumnEntity();
column2.setColumnName("name");
column2.setColumnDesc("姓名");
column2.setColumnType("varchar");
column2.setColumnLen("50");
column2.setIsPrimaryKey("N");
column2.setIsNotNull("N");
//添加列1
columns.add(column1);
//添加列2
columns.add(column2);
//表实体类
TableEntity tableEntity = new TableEntity();
tableEntity.setTableName("testtable");
tableEntity.setTableComment("测试表");
tableEntity.setTableColumns(columns);
tableEntity.setDatabaseName("testdb");
//输出mysqlSql
//String mysqlSql = CreateTableHelper.getMysqlSqlByConvertEntity(tableEntity);
//输出oracelSql
String oracelSql = CreateTableHelper.getOracleSqlByConvertEntity(tableEntity);
System.out.println(oracelSql);
}