自定义实现代码生成器逻辑

针对数据库单表的增删改查,可以通过Mybatis-Plus来自动生成代码。只需要建好数据库,然后配置配置文件,可以生成controller、service、mapper层代码。其实自己也可以实现代码的简单自动生成,1.连接数据库,获取这个库对应的表信息返回;2.根据表的结果,一张表对应关系有一个表名对应多条列名及列名的类型名,这个时候可以根据这个信息建立entity对象。

1.Mysql怎么通过表名获取表结构信息

1.1Mysql所有表信息

select  *  from information_schema.tables where table_schema='erp_test'

show create table information_schema.tables --可以查看创建这个表的sql
CREATE TEMPORARY TABLE `TABLES` (
  `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '',
  `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
  `TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
  `TABLE_TYPE` varchar(64) NOT NULL DEFAULT '',
  `ENGINE` varchar(64) DEFAULT NULL,
  `VERSION` bigint(21) unsigned DEFAULT NULL,
  `ROW_FORMAT` varchar(10) DEFAULT NULL,
  `TABLE_ROWS` bigint(21) unsigned DEFAULT NULL,
  `AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `INDEX_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `DATA_FREE` bigint(21) unsigned DEFAULT NULL,
  `AUTO_INCREMENT` bigint(21) unsigned DEFAULT NULL,
  `CREATE_TIME` datetime DEFAULT NULL,
  `UPDATE_TIME` datetime DEFAULT NULL,
  `CHECK_TIME` datetime DEFAULT NULL,
  `TABLE_COLLATION` varchar(32) DEFAULT NULL,
  `CHECKSUM` bigint(21) unsigned DEFAULT NULL,
  `CREATE_OPTIONS` varchar(255) DEFAULT NULL,
  `TABLE_COMMENT` varchar(2048) NOT NULL DEFAULT ''
) ENGINE=MEMORY DEFAULT CHARSET=utf8

在这里插入图片描述
需要用到属性介绍

列名含义
TABLE_SCHEMA数据表所在的库名
TABLE_NAME表名
ENGINE数据库引擎
TABLE_ROWS表中数据行数
AUTO_INCREMENT自增主键当前值
TABLE_COLLATION表的字符编码
TABLE_COMMENT表的注释

1.2Mysql中表结构信息

select  *  from information_schema.columns

show create table information_schema.columns

CREATE TEMPORARY TABLE `COLUMNS` (
  `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '',
  `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
  `TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
  `COLUMN_NAME` varchar(64) NOT NULL DEFAULT '',
  `ORDINAL_POSITION` bigint(21) unsigned NOT NULL DEFAULT '0',
  `COLUMN_DEFAULT` longtext,
  `IS_NULLABLE` varchar(3) NOT NULL DEFAULT '',
  `DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
  `CHARACTER_MAXIMUM_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
  `NUMERIC_SCALE` bigint(21) unsigned DEFAULT NULL,
  `CHARACTER_SET_NAME` varchar(32) DEFAULT NULL,
  `COLLATION_NAME` varchar(32) DEFAULT NULL,
  `COLUMN_TYPE` longtext NOT NULL,
  `COLUMN_KEY` varchar(3) NOT NULL DEFAULT '',
  `EXTRA` varchar(27) NOT NULL DEFAULT '',
  `PRIVILEGES` varchar(80) NOT NULL DEFAULT '',
  `COLUMN_COMMENT` varchar(1024) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8

select  *  from information_schema.columns where table_schema='erp_test'

在这里插入图片描述
常用列名介绍

列明含义
COLUMN_NAME列名称
ORDINAL_POSITION字段顺序
COLUMN_DEFAULT列的默认数据
IS_NULLABLE是否为空
DATA_TYPE数据类型
CHARACTER_MAXIMUM_LENGTH字符最大长度
CHARACTER_SET_NAME字符集名称
COLUMN_TYPE类类型字符串表示
COLUMN_KEY关键列[PRI][NULL][MUL]
EXTRA额外描述
PRIVILEGES字段操作权限
COLUMN_COMMENT注释

1.3Mysql获取某个库表所有表结构sql

select t.table_name 表名,
	TABLE_COMMENT 表注释,
	column_name 列名,
	ordinal_position 字段顺序,
	data_type 数据类型,
	column_type 数据类型字符串,
	column_comment 列注释
from information_schema.tables t 
inner join information_schema.columns c on t.table_name=c.table_name and t.table_schema=c.table_schema
where t.table_schema='erp_test' 

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值