簡體   English   中英

Java.SQL和PostgreSQL表

[英]Java.SQL and PostgreSQL table

我對java.sql.*有一些疑問;

1)如何獲取表中所有列的類型列表? 現在我要求

SELECT data_type FROM information_schema.columns
WHERE  information_schema.columns.table_name = 'TableName';

如何使用Java做同樣的事情? 我認為與發言者的姓名相似。

2)尚不清楚如何定義列屬性: NULL / NOT NULLPRIMARY KEY等。

3)關於SERIAL的另一個問題:獲取類型時,此列返回INT並且無法進行處理。 有沒有區分SERIAL列的方法?

感謝您的理解。

您可以使用DatabaseMetaData.getColumns()查詢表中的列。

根據您希望獲取TableName上的數據的願望:

DatabaseMetaData dbmd = connection.getMetaData()
try (ResultSet columns = dbmd.getColumns(null, null, "TableName", "%")) {
    while(columns.next()) {
        // get the info from the resultset (eg the java.sql.Types value):
        int dataType = columns.getInt("DATA_TYPE");
    }
}

getColumns的參數是LIKE -patterns,這就是為什么最后一個參數( columnPattern )獲得值"%" 可以從NULLABLEIS_NULLABLE列中檢索可為空性,有關串行的信息可能可以從IS_AUTOINCREMENT列中IS_AUTOINCREMENT ,有關詳細信息,請參見文檔。 要查找主鍵,可以使用DatabaseMetaData.getPrimaryKeys()

有關更多信息,請參閱javadoc,它非常詳細。

暫無
暫無

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

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