获取数据库中表结构信息
程序员文章站
2024-02-22 22:18:04
...
说明: 在控制台打印输出的格式为markdown ,
第一步:导入依赖
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
</dependencies>
第二步: 运行以下代码
package com.joe.GenEntityTable;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.swing.filechooser.FileSystemView;
public class GenEntityTable {
private static final String driver="com.mysql.jdbc.Driver";
private static final String pwd="root";
private static final String user="root";
private static final String url = "jdbc:mysql://192.168.0.81:3306/finance" + "?user=" + user + "&password=" + pwd + "&useUnicode=true&characterEncoding=UTF-8";
private static Connection getConnection=null;
public static void main(String[] args) {
FileSystemView fsv=FileSystemView.getFileSystemView();
getConnection=getConnections();
try {
DatabaseMetaData dbmd=getConnection.getMetaData();
ResultSet resultSet = dbmd.getTables(null, "%", "%", new String[] { "TABLE" });
while (resultSet.next()) {
String tableName=resultSet.getString("TABLE_NAME");
ResultSet rs2 = dbmd.getColumns(null, "%", tableName, "%");
System.out.println("### " +tableName);
System.out.println("---");
System.out.println("**表名:" +tableName +"**");
System.out.println("表说明:");
System.out.println("|"+"字段名"+"|"+"字段类型"+"|t"+"注释" +"|");
System.out.println("|"+" ---- "+"|"+" ---- "+"|"+" ---- " +"|");
while(rs2.next()){
String name = rs2.getString("COLUMN_NAME");
String type = rs2.getString("TYPE_NAME");
String op=rs2.getString("REMARKS");
if("id".equals(name)){
op = "主键id";
}
if("create_time".equals(name)){
op = "数据插入时间";
}
if("update_time".equals(name)) {
op ="最后一次数据更新时间";
}
System.out.println("|"+name+"\t\t|"+type+"|\t\t"+op +"|");
}
System.out.println();
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 创建数据库连接
public static Connection getConnections() {
try {
Class.forName(driver);
getConnection = DriverManager.getConnection(url, user, pwd);
} catch (Exception e) {
e.printStackTrace();
}
return getConnection;
}
// 判断属性类型
public static String sqlType2JavaType(String sqlType) {
String str = null;
if (sqlType.equalsIgnoreCase("bit")) {
str = "boolean";
} else if (sqlType.equalsIgnoreCase("tinyint")) {
str = "byte";
} else if (sqlType.equalsIgnoreCase("smallint")) {
str = "short";
} else if (sqlType.equalsIgnoreCase("int")) {
str = "int";
} else if (sqlType.equalsIgnoreCase("bigint")) {
str = "long";
} else if (sqlType.equalsIgnoreCase("float")) {
str = "float";
} else if (sqlType.equalsIgnoreCase("decimal") || sqlType.equalsIgnoreCase("numeric")
|| sqlType.equalsIgnoreCase("real") || sqlType.equalsIgnoreCase("money")
|| sqlType.equalsIgnoreCase("smallmoney")) {
str = "double";
} else if (sqlType.equalsIgnoreCase("varchar") || sqlType.equalsIgnoreCase("char")
|| sqlType.equalsIgnoreCase("nvarchar") || sqlType.equalsIgnoreCase("nchar")
|| sqlType.equalsIgnoreCase("text")) {
str = "String";
} else if (sqlType.equalsIgnoreCase("datetime")) {
str = "String";
} else if (sqlType.equalsIgnoreCase("image")) {
str = "Blod";
}
return str;
}
}