Browse Source

Convert TableMetaData to a record

This simplifies the code and also improves diagnostics while debugging.
pull/31194/head
Sam Brannen 2 years ago
parent
commit
762d903aad
  1. 57
      spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java

57
spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java

@ -326,15 +326,13 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { @@ -326,15 +326,13 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
tables = databaseMetaData.getTables(
catalogNameToUse(catalogName), schemaNameToUse(schemaName), tableNameToUse(tableName), null);
while (tables != null && tables.next()) {
TableMetaData tmd = new TableMetaData();
tmd.setCatalogName(tables.getString("TABLE_CAT"));
tmd.setSchemaName(tables.getString("TABLE_SCHEM"));
tmd.setTableName(tables.getString("TABLE_NAME"));
if (tmd.getSchemaName() == null) {
TableMetaData tmd = new TableMetaData(tables.getString("TABLE_CAT"), tables.getString("TABLE_SCHEM"),
tables.getString("TABLE_NAME"));
if (tmd.schemaName() == null) {
tableMeta.put(this.userName != null ? this.userName.toUpperCase() : "", tmd);
}
else {
tableMeta.put(tmd.getSchemaName().toUpperCase(), tmd);
tableMeta.put(tmd.schemaName().toUpperCase(), tmd);
}
}
}
@ -395,9 +393,9 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { @@ -395,9 +393,9 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
*/
private void processTableColumns(DatabaseMetaData databaseMetaData, TableMetaData tmd) {
ResultSet tableColumns = null;
String metaDataCatalogName = metaDataCatalogNameToUse(tmd.getCatalogName());
String metaDataSchemaName = metaDataSchemaNameToUse(tmd.getSchemaName());
String metaDataTableName = tableNameToUse(tmd.getTableName());
String metaDataCatalogName = metaDataCatalogNameToUse(tmd.catalogName());
String metaDataSchemaName = metaDataSchemaNameToUse(tmd.schemaName());
String metaDataTableName = tableNameToUse(tmd.tableName());
if (logger.isDebugEnabled()) {
logger.debug("Retrieving meta-data for " + metaDataCatalogName + '/' +
metaDataSchemaName + '/' + metaDataTableName);
@ -446,45 +444,10 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { @@ -446,45 +444,10 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
/**
* Class representing table meta-data.
* Record representing table meta-data.
*/
private static class TableMetaData {
@Nullable
private String catalogName;
@Nullable
private String schemaName;
@Nullable
private String tableName;
public void setCatalogName(String catalogName) {
this.catalogName = catalogName;
}
@Nullable
public String getCatalogName() {
return this.catalogName;
}
public void setSchemaName(String schemaName) {
this.schemaName = schemaName;
}
@Nullable
public String getSchemaName() {
return this.schemaName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
@Nullable
public String getTableName() {
return this.tableName;
}
private record TableMetaData(@Nullable String catalogName, @Nullable String schemaName,
@Nullable String tableName) {
}
}

Loading…
Cancel
Save