![](/img/trans.png)
[英]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.