簡體   English   中英

如何返回Java中指定表的列數、列名、列類型?

[英]How to return the column count, column names, and column types from a specified table in Java?

我有一項家庭作業,要打印出輸入給定表的列數、名稱和類型。 這是代碼:

public void printTableInfo(String tableName) throws DLException{
        String catalog = null;
        String schemaPattern = null;
        String tableNamePattern = tableName;
        String columnNamePattern = null;
        int columnCount = 0;
        String columnName = null;
        int columnType = 0;
        String columnPrimaryKeys = null;
        try {
            DatabaseMetaData dbmd = connection.getMetaData();

            ResultSet result = dbmd.getColumns(catalog, schemaPattern, tableNamePattern, columnNamePattern);
            ResultSetMetaData rsmd = result.getMetaData();
            columnCount = rsmd.getColumnCount();
            ResultSet primaryKeys = dbmd.getPrimaryKeys(catalog, schemaPattern, tableNamePattern);

            while(result.next()) {
                columnName = result.getString(4);
                columnType = result.getInt(5);
            }
            while(primaryKeys.next()) {
                columnPrimaryKeys = primaryKeys.getString(4);
            }
            System.out.println("\nColumn count: " + columnCount + ", Column names: " + columnName + ", Column Types: " + columnType + "\nPrimary Keys: " + columnPrimaryKeys);
        } catch (SQLException sqle) {
            throw new DLException(sqle, "-> Error in processing data printing (SQLException) to the database at printTableInfo() method.");
        }
    }

但是,當我運行此代碼時,它給我的表的列數比它有的多,只有最后一個列名和不正確的列類型數。 我怎樣才能使它產生正確的列數,顯示所有列名和正確數量的列類型? PS主鍵部分工作正常。

我想通了,我沒有在正確的位置打印。 告我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM