![](/img/trans.png)
[英]Sqlite and java.sql library - Checking Indices Created For a Sqlite Table
[英]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 NULL
, PRIMARY 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
)獲得值"%"
。 可以從NULLABLE
和IS_NULLABLE
列中檢索可為空性,有關串行的信息可能可以從IS_AUTOINCREMENT
列中IS_AUTOINCREMENT
,有關詳細信息,請參見文檔。 要查找主鍵,可以使用DatabaseMetaData.getPrimaryKeys()
。
有關更多信息,請參閱javadoc,它非常詳細。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.