术语
- 元数据:描述数据的数据,在本文中主要描述数据库描述表和描述字段的数据
背景
最近闲着无聊做个工具,涉及数据元数据提取工作,顺便做个记录。目前验证MySQL下可行。
关于通用性
网上找到了很多有关show create table [Table_Name]的方式,我嫌弃解析返回值太累,通用性比较差,所以走了另外条路,JDBC标准API接口方式解决。
结论
建表语句
create table test.test
(
id int auto_increment comment '主键'
primary key,
name varchar(50) null comment '名称',
type varchar(20) null comment '类型'
) comment '测试表';
代码执行结果
TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS TYPE_CAT TYPE_SCHEM TYPE_NAME SELF_REFERENCING_COL_NAME REF_GENERATION
test null test TABLE 测试表 null null null null null
TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE SCOPE_CATALOG SCOPE_SCHEMA SCOPE_TABLE SOURCE_DATA_TYPE IS_AUTOINCREMENT IS_GENERATEDCOLUMN
test null test id 4 INT 10 65535 null 10 0 主键 null 0 0 null 1 NO null null null null YES NO
test null test name 12 VARCHAR 50 65535 null 10 1 名称 null 0 0 50 2 YES null null null null NO NO
test null test type 12 VARCHAR 20 65535 null 10 1 类型 null 0 0 20 3 YES null null null null NO NO
正式内容
下面代码涉及两方面内容JDBC url properties,Java JDBC API。
Maven依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
下面展示一个最简单的代码,各位看官可以自行再封装。
代码如下:
import java.sql.<