我想获取有关数据库视图的元数据信息。
我可以使用以下代码找到我的观点
DatabaseMetaData databaseMetaData = connection.getMetaData();
String tableName = "";
ResultSet rSet = databaseMetaData.getTables(null, databaseName, null, new String[] {TABLE, VIEW});
while (rSet.next()) {
tableName = rSet.getString(TABLE_NAME_COLUMN);
if (rSet.getString(TABLE_TYPE_COLUMN).equals(TABLE)) {
tableNames.add(tableName);
} else if (rSet.getString(TABLE_TYPE_COLUMN).equals(VIEW)) {
viewNames.add(tableName);
}
}
现在,当我有视图名称时,我想获取VIEW中的数据列列表。
我使用以下代码
ResultSet rSet = databaseMetaData.getColumns(null, databaseName, table, null);
while (rSet.next()) {
columnDefinitions.add(new ColumnDefinition(rSet.getString(COLUMN_NAME_COLUMN), getColumnClassName(rSet
.getInt(DATA_TYPE_COLUMN))));
}
这里的关注点是此查询仅返回从中派生此VIEW的基本列的列表。假设我的基表有3列并且我创建了一个视图,如果该表有2个额外的列从3个基列中获取信息。
我想获取所有5列的名称和信息。这可能吗 ? 有没有其他方法可以做到这一点?