在日常开发中,尤其是多人协作的项目,数据库表结构文档 是不可或缺的一部分。但不少人都是手工整理,效率低、容易出错。
今天分享一个小工具,使用 Java 连接 SQL Server,自动导出所有表结构为 Markdown 文件,方便团队查看或生成技术文档。
功能简介
- 遍历数据库中所有表
- 获取每张表的字段名、数据类型、是否可为空、字段备注
- 以 Markdown 表格形式导出,生成一张张结构清晰的文档
适合场景:
- 新项目开始前梳理建表文档
- DBA、开发对接查看结构
- 项目文档沉淀
技术栈
- Java 8+
- SQL Server JDBC 驱动
- 普通文本 IO,无任何依赖
代码结构
项目共两个类:
Exporter.java
:主程序,连接数据库并遍历所有表MdWriter.java
:负责将表结构写入 Markdown 文件
完整代码
Exporter.java
ini
import java.sql.*;
import java.util.*;
import java.io.*;
public class Exporter {
public static void main(String[] args) throws Exception {
String url = "jdbc:sqlserver://localhost:1433;databaseName=your_db"; // 替换为你的数据库名
String user = "sa"; // 替换为你的用户名
String password = "password"; // 替换为你的密码
Connection conn = DriverManager.getConnection(url, user, password);
DatabaseMetaData metaData = conn.getMetaData();
ResultSet tables = metaData.getTables(null, null, "%", new String[]{"TABLE"});
while (tables.next()) {
String tableName = tables.getString("TABLE_NAME");
List<String[]> rows = new ArrayList<>();
ResultSet columns = metaData.getColumns(null, null, tableName, null);
while (columns.next()) {
String colName = columns.getString("COLUMN_NAME");
String type = columns.getString("TYPE_NAME");
String nullable = columns.getInt("NULLABLE") == DatabaseMetaData.columnNullable ? "YES" : "NO";
String remarks = columns.getString("REMARKS");
rows.add(new String[]{colName, type, nullable, remarks});
}
MdWriter.writeTable(tableName, rows);
}
conn.close();
System.out.println("✅ 导出完成!");
}
}
MdWriter.java
java
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
public class MdWriter {
public static void writeTable(String tableName, List<String[]> rows) throws IOException {
FileWriter writer = new FileWriter(tableName + ".md");
writer.write("### 表:" + tableName + "\n\n");
writer.write("| 字段名 | 类型 | 可为空 | 说明 |\n");
writer.write("|--------|------|--------|------|\n");
for (String[] row : rows) {
writer.write(String.format("| %s | %s | %s | %s |\n",
row[0], row[1], row[2], row[3] != null ? row[3] : ""));
}
writer.close();
}
}
使用说明
1. 引入 SQL Server 驱动
请下载并引入 Microsoft JDBC Driver for SQL Server。
例如放入项目目录并在 IDE 中添加:
sqljdbc4.jar
或使用 Maven:
xml
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>9.4.1.jre8</version>
</dependency>
2. 修改连接信息
将 Exporter.java
中的这部分替换为你的本地数据库信息:
ini
String url = "jdbc:sqlserver://localhost:1433;databaseName=your_db";
String user = "sa";
String password = "your_password";
3. 运行项目
执行主函数,运行后你会在项目目录下看到多个 .md
文件,每个对应一个数据库表,类似如下:
表:User
字段名 | 类型 | 可为空 | 说明 |
---|---|---|---|
id | INT | NO | 主键 |
name | VARCHAR | YES | 用户名 |
... | ... | ... | ... |
小结
这是一个非常实用的小工具,能帮助我们更好地梳理数据库结构,尤其适用于:
- 团队建表文档编写
- 数据结构变更版本管理
- 提升文档规范性和可视化程度
如果你觉得有用,欢迎点赞收藏 🧡
也欢迎在评论区一起交流 Java 工具小项目的思路和优化方式!