基于MySQL的创建Java实体Bean和TypeScript实体Bean
基于MySQL的创建Java实体Bean和TypeScript实体Bean
select
`ORDINAL_POSITION` as `a`,
-- @Data
-- @Schema(description = "货物管理表")
-- @TableName("lpg_cargo")
-- public class CargoEntity implements Serializable{
concat('@Data \n @Schema(description = "',`TABLE_COMMENT`,'") \n @TableName("',`TABLE_NAME`, '")') as `aaa`,
concat('public class ', `TABLE_NAME_NEW`,'Entity extends Model<', `TABLE_NAME_NEW`,'>{ ') as `bbb`,
`DATA_TYPE`,
concat('//',COLUMN_COMMENT)AS COLUMN_COMMENT,
CamelCaseColumn,
-- TYPE JS 实体
concat('//',COLUMN_COMMENT,'\n',
CamelCaseColumn,
CASE WHEN `DATA_TYPE` = 'String' THEN ': string | undefined = undefined;'
WHEN `DATA_TYPE` = 'Long' THEN ': number | undefined = undefined;'
WHEN `DATA_TYPE` = 'Integer' THEN ': number | undefined = undefined;'
WHEN `DATA_TYPE` = 'BigDecimal' THEN ': number | undefined = undefined;'
ELSE ': String | undefined = undefined;'
END
)AS typeJsEntity,
-- @Schema(description = "货物名称")
-- private String cargoName
-- `TABLE_COMMENT`,
-- `TABLE_NAME`,
-- `TABLE_NAME_NEW`,
concat(
/*=====注释========*/
'/**\n* ',COLUMN_COMMENT, '\n*/',
/*======字段映射=======*/
'\n@TableField(value = "',COLUMN_NAME,'",property = "',CamelCaseColumn,'")',
/*====swagger========*/
'\n@Schema(description = "',COLUMN_COMMENT,'")\n',
/*=====BEAN字段=======*/
`prefix`,' ',`DATA_TYPE`,' ',`CamelCaseColumn`,';') as CamelCaseColumn
/* ============================== */
/* ============================== */
/* ============================== */
/* ============================== */
from
(
/**/
select
'private' as `prefix`,
ORDINAL_POSITION,
TABLE_COMMENT,
TABLE_NAME,
COLUMN_NAME,
replace(replace(replace(replace(replace(replace(replace( replace(replace( replace(replace(replace(replace(replace(replace( replace( replace( replace( replace(replace(replace( replace( replace( replace( replace( replace( replace(TABLE_NAME, '_a', 'A'), '_b', 'B'), '_c', 'C'), '_d', 'D'), '_e', 'E'), '_f', 'F'), '_g', 'G')
, '_h', 'H'), '_i', 'I'), '_j', 'J'), '_k', 'K'), '_l', 'L'), '_m', 'M'), '_n', 'N'), '_o', 'O'), '_p', 'P'), '_q', 'Q'), '_r', 'R'), '_s', 'S'), '_t', 'T'), '_u', 'U')
, '_v', 'V'), '_w', 'W'), '_x', 'X'), '_y', 'Y'), '_z', 'Z'), '_', '') as `TABLE_NAME_NEW`,
/* ================ */
replace(replace(replace(replace(replace(replace(replace( replace(replace( replace(replace(replace(replace(replace(replace( replace( replace( replace( replace(replace(replace( replace( replace( replace( replace( replace( replace(COLUMN_NAME, '_a', 'A'), '_b', 'B'), '_c', 'C'), '_d', 'D'), '_e', 'E'), '_f', 'F'), '_g', 'G')
, '_h', 'H'), '_i', 'I'), '_j', 'J'), '_k', 'K'), '_l', 'L'), '_m', 'M'), '_n', 'N'), '_o', 'O'), '_p', 'P'), '_q', 'Q'), '_r', 'R'), '_s', 'S'), '_t', 'T'), '_u', 'U')
, '_v', 'V'), '_w', 'W'), '_x', 'X'), '_y', 'Y'), '_z', 'Z'), '_', '') as `CamelCaseColumn`,
/* ================ */
case
upper(DATA_TYPE)
when 'VARCHAR' then 'String'
when 'CHAR' then 'String'
when 'TEXT' then 'String'
when 'INT' then 'Integer'
when 'TINYINT' then 'Integer'
when 'SMALLINT' then 'Integer'
when 'MEDIUMINT' then 'Integer'
when 'BOOLEAN' then 'Integer'
when 'BIGINT' then 'Long'
when 'INTEGER' then 'Long'
when 'ID' then 'Long'
when 'FLOAT' then 'Float'
when 'DOUBLE' then 'Double'
when 'DECIMAL' then 'BigDecimal'
when 'BIT' then 'Boolean'
/*WHEN 'BLOB' THEN 'byte[]'*/
when 'BLOB' then 'byte[]'
/* 日期格式*/
when 'DATE' then 'LocalDateTime'
/* WHEN 'DATE' THEN 'Date'*/
when 'YEAR' then 'Date'
when 'TIME' then 'Time'
/* WHEN 'DATETIME' THEN 'Timestamp'*/
/* WHEN 'TIMESTAMP' THEN 'Timestamp'*/
when 'DATETIME' then 'LocalDateTime'
when 'TIMESTAMP' then 'LocalDateTime'
else 'String '
end as `DATA_TYPE`,
';' as `suffix`,
COLUMN_COMMENT
from
(
/* === */
select
`tables`.TABLE_SCHEMA,
`tables`.TABLE_NAME,
`tables`.TABLE_COMMENT,
`columns`.ORDINAL_POSITION,
-- `columns`.TABLE_NAME,
lower(`columns`.COLUMN_NAME) AS COLUMN_NAME,
`columns`.DATA_TYPE,
`columns`.COLUMN_COMMENT
from
INFORMATION_SCHEMA.Tables as `tables`
left join INFORMATION_SCHEMA.COLUMNS as `columns`
on
`columns`.TABLE_NAME = `tables`.TABLE_NAME
/* ============================== */
/* ============================== */
/* ============================== */
/* ============================== */
where
`tables`.TABLE_SCHEMA = '数据库名称'
and `tables`.TABLE_NAME = '表名称 '
/* ============================== */
/* ============================== */
/* ============================== */
/* ============================== */
order by
`columns`.ORDINAL_POSITION
/* === */
)as tmp
order by
ORDINAL_POSITION
/**/
)as ttt
order by
ORDINAL_POSITION