簡體   English   中英

如何在沒有ResultSet的情況下獲得等效的ResultSetMetaData

[英]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.

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