欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

获取数据库中表结构信息

程序员文章站 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;
    }

}

相关标签: mysql