[英]Set value in Setter according to number of column in ResultSetMetaData
[英]ResultSetMetaData getting default value of column
我正在使用 Oracle 數據庫。
我想使用 Java JDBC 將默認值分配給列。
但是使用ResultSetMetaData
不提供任何方法來獲取列的默認值。
所以請告訴我任何想法。 提前致謝。
您可以運行此查詢
Select DATA_DEFAULT from USER_TAB_COLUMNS where TABLE_NAME ='MyTable' and COLUMN_NAME = 'MyColumn'
下面的函數返回列的默認值。 在您的ResultSetMetaData
上調用它
public java.lang.String getDefaultValue(int columnIndex) // or columnName
throws DriverException
像ResultSetMetaData.getDefaultValue(columnNameOrcolumnIndex)
我能找到的 Java JDBC 中的 ResultSetMetaData 上沒有“getDefaultValue”方法。
但是,以下查詢有效:
SELECT COLUMN_NAME, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS
where table_name='<tablename>' and COLUMN_DEFAULT is not null
連接到有問題的數據庫,或者類似地使用查詢 master 的數據庫名稱。
這個答案使用DatabaseMetadata
而不是ResultSetMetadata
,所以從技術上講它不回答提出的問題。 然而,它似乎比查詢更可靠,並且對整個社區仍然具有長期價值:
例子:
Connection connection = ...;
DatabaseMetaData databaseMetaData = connection.getMetaData();
try (ResultSet resultSet = databaseMetaData.getColumns(null, null, "MyTable", "MyColumn")) {
while (resultSet.next()) {
String defaultValue = resultSet.getString("COLUMN_DEF");
// Do something...
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.