[英]How can I get the column name of the primary key of a Database Table from the ResultSet or ResultSetMetaData object in JAVA?
[英]How to get equivalent of ResultSetMetaData without ResultSet
我需要將一堆列名解析為列索引(以便使用一些很好的ResultSetMetaData
方法)。 但是,我知道如何獲取ResultSetMetaData
對象的唯一方法是在某個ResultSet
上調用getMetaData()
。
我遇到的問題是抓住一個ResultSet占據了我心中的不必要的資源 - 我真的不需要查詢表中的數據,我只想要一些關於表的信息。
有沒有人知道如何獲得ResultSetMetaData
對象而不首先獲得ResultSet
(來自可能很大的表)?
也許你可以使用
DatabaseMetaData databaseMetaData = connection.getMetaData();
databaseMetaData.getColumns(null, null, tableName, "%");
它為每個表列返回一行。
在這種情況下,您將使用返回的ResultSet
本身,而不是其ResultSetMetaData
。
這種方法的一個優點是,它不會干擾數據庫鎖定和事務。
假設您正在select * from mytable
執行select * from mytable
您可以添加一個where
子句,以確保不會返回任何記錄並且ResultSet將為空?
這樣您仍然只是獲取您感興趣的表的元數據而不是整個數據庫。
另一種方法
select * from mytable limit 0;
然后查詢不會得到任何數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.