1、通過如下sql查詢出數據字典信息
SELECT
table_schema AS '數據庫',
TABLE_NAME AS '表名',
COLUMN_NAME AS '字段名',
COLUMN_TYPE AS '數據類型',
IS_NULLABLE AS '允許爲空',
EXTRA AS 'PK',
COLUMN_COMMENT AS '字段說明'
FROM
information_schema.COLUMNS
WHERE
table_schema IN ( "數據庫名" );
2、導出結果爲txt.並將字段分隔符設置爲逗號。
3、運行下列代碼,將上一步導出的txt轉爲md格式。
import lombok.Data;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ProcessMsqlDD {
public static void main(String[] args) {
try (Stream<String> lines =
Files.lines(Paths.get("C:\\Users\\wafer\\Desktop\\測試查詢.txt"), Charset.defaultCharset())) {
TreeMap<String, TreeMap<String, List<DD>>> collect = lines
.map(line -> {
line = line.replace("\"", "");
String[] split = line.split(",");
DD dd = new DD();
dd.setTable_schema(split[0]);
dd.setTable_name(split[1]);
dd.setColumn_name(split[2]);
dd.setColumn_type(split[3]);
dd.setIs_nullable(split[4]);
if (split.length > 5) {
dd.setExtra(split[5]);
}
if (split.length > 6) {
dd.setColumn_comment(split[6]);
}
return dd;
})
.collect(Collectors.groupingBy
(DD::getTable_schema, TreeMap::new,
Collectors.groupingBy
(DD::getTable_name, TreeMap::new,
Collectors.toList())));
collect.entrySet().stream()
.forEach(key -> {
String name = key.getKey();
System.out.println("### 庫:" + name.substring(name.indexOf("_") + 1));
key.getValue().entrySet().stream()
.forEach(key1 -> {
System.out.println("#### 表:" + key1.getKey());
System.out.println("字段名 | 數據類型 | 允許爲空 | PK | 字段說明");
System.out.println("---|---|---|---|---");
key1.getValue().stream().forEach(x -> System.out.println(x.toString()));
});
});
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Data
class DD {
private String table_schema;
private String table_name;
private String column_name;
private String column_type;
private String is_nullable;
private String extra;
private String column_comment;
@Override
public String toString() {
return column_name + " | " + column_type + " | " + is_nullable + " | " + extra + " | " + column_comment;
}
}