Consistent method declaration order in Call/TableMetaDataProvider
This commit is contained in:
parent
969b18b0e8
commit
a44341ece3
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -677,7 +677,6 @@ public class CallMetaDataContext {
|
|||
*/
|
||||
protected String createParameterBinding(SqlParameter parameter) {
|
||||
Assert.state(this.metaDataProvider != null, "No CallMetaDataProvider available");
|
||||
|
||||
return (isNamedBinding() ? this.metaDataProvider.namedParameterBindingToUse(parameter.getName()) : "?");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -150,6 +150,11 @@ public interface CallMetaDataProvider {
|
|||
@Nullable
|
||||
String getUserName();
|
||||
|
||||
/**
|
||||
* Are we using the meta-data for the procedure columns?
|
||||
*/
|
||||
boolean isProcedureColumnMetaDataUsed();
|
||||
|
||||
/**
|
||||
* Does this database support returning ResultSets that should be retrieved with the JDBC call:
|
||||
* {@link java.sql.Statement#getResultSet()}?
|
||||
|
|
@ -168,11 +173,6 @@ public interface CallMetaDataProvider {
|
|||
*/
|
||||
int getRefCursorSqlType();
|
||||
|
||||
/**
|
||||
* Are we using the meta-data for the procedure columns?
|
||||
*/
|
||||
boolean isProcedureColumnMetaDataUsed();
|
||||
|
||||
/**
|
||||
* Should we bypass the return parameter with the specified name?
|
||||
* <p>This allows the database specific implementation to skip the processing
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -53,6 +53,8 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
|
|||
|
||||
private final String userName;
|
||||
|
||||
private boolean procedureColumnMetaDataUsed = false;
|
||||
|
||||
private boolean supportsCatalogsInProcedureCalls = true;
|
||||
|
||||
private boolean supportsSchemasInProcedureCalls = true;
|
||||
|
|
@ -61,8 +63,6 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
|
|||
|
||||
private boolean storesLowerCaseIdentifiers = false;
|
||||
|
||||
private boolean procedureColumnMetaDataUsed = false;
|
||||
|
||||
private final List<CallParameterMetaData> callParameterMetaData = new ArrayList<>();
|
||||
|
||||
|
||||
|
|
@ -195,6 +195,11 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
|
|||
return this.userName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isProcedureColumnMetaDataUsed() {
|
||||
return this.procedureColumnMetaDataUsed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReturnResultSetSupported() {
|
||||
return true;
|
||||
|
|
@ -210,17 +215,11 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
|
|||
return Types.OTHER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isProcedureColumnMetaDataUsed() {
|
||||
return this.procedureColumnMetaDataUsed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean byPassReturnParameter(String parameterName) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Specify whether the database supports the use of catalog name in procedure calls.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -47,38 +47,40 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
|
|||
/** Logger available to subclasses. */
|
||||
protected static final Log logger = LogFactory.getLog(TableMetaDataProvider.class);
|
||||
|
||||
/** indicator whether column meta-data should be used. */
|
||||
private boolean tableColumnMetaDataUsed = false;
|
||||
/** Database products we know not supporting the use of a String[] for generated keys. */
|
||||
private static final List<String> productsNotSupportingGeneratedKeysColumnNameArray =
|
||||
Arrays.asList("Apache Derby", "HSQL Database Engine");
|
||||
|
||||
/** the version of the database. */
|
||||
@Nullable
|
||||
private String databaseVersion;
|
||||
|
||||
/** the name of the user currently connected. */
|
||||
/** The name of the user currently connected. */
|
||||
@Nullable
|
||||
private final String userName;
|
||||
|
||||
/** indicates whether the identifiers are uppercased. */
|
||||
private boolean storesUpperCaseIdentifiers = true;
|
||||
/** The version of the database. */
|
||||
@Nullable
|
||||
private String databaseVersion;
|
||||
|
||||
/** indicates whether the identifiers are lowercased. */
|
||||
private boolean storesLowerCaseIdentifiers = false;
|
||||
/** Indicates whether column meta-data has been used. */
|
||||
private boolean tableColumnMetaDataUsed = false;
|
||||
|
||||
/** indicates whether generated keys retrieval is supported. */
|
||||
/** Indicates whether generated keys retrieval is supported. */
|
||||
private boolean getGeneratedKeysSupported = true;
|
||||
|
||||
/** indicates whether the use of a String[] for generated keys is supported. */
|
||||
/** Indicates whether the use of a String[] for generated keys is supported. */
|
||||
private boolean generatedKeysColumnNameArraySupported = true;
|
||||
|
||||
/** database products we know not supporting the use of a String[] for generated keys. */
|
||||
private final List<String> productsNotSupportingGeneratedKeysColumnNameArray =
|
||||
Arrays.asList("Apache Derby", "HSQL Database Engine");
|
||||
/** Indicates whether the identifiers are uppercased. */
|
||||
private boolean storesUpperCaseIdentifiers = true;
|
||||
|
||||
/** Indicates whether the identifiers are lowercased. */
|
||||
private boolean storesLowerCaseIdentifiers = false;
|
||||
|
||||
/** The string used to quote SQL identifiers. */
|
||||
private String identifierQuoteString = " ";
|
||||
|
||||
/** Collection of TableParameterMetaData objects. */
|
||||
private final List<TableParameterMetaData> tableParameterMetaData = new ArrayList<>();
|
||||
|
||||
/** The string used to quote SQL identifiers. */
|
||||
private String identifierQuoteString = " ";
|
||||
|
||||
/**
|
||||
* Constructor used to initialize with provided database meta-data.
|
||||
|
|
@ -89,63 +91,6 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
|
|||
}
|
||||
|
||||
|
||||
public void setStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers) {
|
||||
this.storesUpperCaseIdentifiers = storesUpperCaseIdentifiers;
|
||||
}
|
||||
|
||||
public boolean isStoresUpperCaseIdentifiers() {
|
||||
return this.storesUpperCaseIdentifiers;
|
||||
}
|
||||
|
||||
public void setStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers) {
|
||||
this.storesLowerCaseIdentifiers = storesLowerCaseIdentifiers;
|
||||
}
|
||||
|
||||
public boolean isStoresLowerCaseIdentifiers() {
|
||||
return this.storesLowerCaseIdentifiers;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isTableColumnMetaDataUsed() {
|
||||
return this.tableColumnMetaDataUsed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TableParameterMetaData> getTableParameterMetaData() {
|
||||
return this.tableParameterMetaData;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGetGeneratedKeysSupported() {
|
||||
return this.getGeneratedKeysSupported;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGetGeneratedKeysSimulated(){
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public String getSimpleQueryForGetGeneratedKey(String tableName, String keyColumnName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setGetGeneratedKeysSupported(boolean getGeneratedKeysSupported) {
|
||||
this.getGeneratedKeysSupported = getGeneratedKeysSupported;
|
||||
}
|
||||
|
||||
public void setGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumnNameArraySupported) {
|
||||
this.generatedKeysColumnNameArraySupported = generatedKeysColumnNameArraySupported;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGeneratedKeysColumnNameArraySupported() {
|
||||
return this.generatedKeysColumnNameArraySupported;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException {
|
||||
try {
|
||||
|
|
@ -165,7 +110,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
|
|||
}
|
||||
try {
|
||||
String databaseProductName = databaseMetaData.getDatabaseProductName();
|
||||
if (this.productsNotSupportingGeneratedKeysColumnNameArray.contains(databaseProductName)) {
|
||||
if (productsNotSupportingGeneratedKeysColumnNameArray.contains(databaseProductName)) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("GeneratedKeysColumnNameArray is not supported for " + databaseProductName);
|
||||
}
|
||||
|
|
@ -234,6 +179,11 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
|
|||
locateTableAndProcessMetaData(databaseMetaData, catalogName, schemaName, tableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TableParameterMetaData> getTableParameterMetaData() {
|
||||
return this.tableParameterMetaData;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public String tableNameToUse(@Nullable String tableName) {
|
||||
|
|
@ -305,16 +255,62 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
|
|||
return this.databaseVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provide access to the identifier quote string.
|
||||
* @since 6.1
|
||||
* @see java.sql.DatabaseMetaData#getIdentifierQuoteString()
|
||||
*/
|
||||
@Override
|
||||
public boolean isTableColumnMetaDataUsed() {
|
||||
return this.tableColumnMetaDataUsed;
|
||||
}
|
||||
|
||||
public void setGetGeneratedKeysSupported(boolean getGeneratedKeysSupported) {
|
||||
this.getGeneratedKeysSupported = getGeneratedKeysSupported;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGetGeneratedKeysSupported() {
|
||||
return this.getGeneratedKeysSupported;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGetGeneratedKeysSimulated(){
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public String getSimpleQueryForGetGeneratedKey(String tableName, String keyColumnName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumnNameArraySupported) {
|
||||
this.generatedKeysColumnNameArraySupported = generatedKeysColumnNameArraySupported;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGeneratedKeysColumnNameArraySupported() {
|
||||
return this.generatedKeysColumnNameArraySupported;
|
||||
}
|
||||
|
||||
public void setStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers) {
|
||||
this.storesUpperCaseIdentifiers = storesUpperCaseIdentifiers;
|
||||
}
|
||||
|
||||
public boolean isStoresUpperCaseIdentifiers() {
|
||||
return this.storesUpperCaseIdentifiers;
|
||||
}
|
||||
|
||||
public void setStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers) {
|
||||
this.storesLowerCaseIdentifiers = storesLowerCaseIdentifiers;
|
||||
}
|
||||
|
||||
public boolean isStoresLowerCaseIdentifiers() {
|
||||
return this.storesLowerCaseIdentifiers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdentifierQuoteString() {
|
||||
return this.identifierQuoteString;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Method supporting the meta-data processing for a table.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -64,18 +64,12 @@ public class TableMetaDataContext {
|
|||
@Nullable
|
||||
private String schemaName;
|
||||
|
||||
// List of columns objects to be used in this context
|
||||
private List<String> tableColumns = new ArrayList<>();
|
||||
|
||||
// Should we access insert parameter meta-data info or not
|
||||
private boolean accessTableColumnMetaData = true;
|
||||
|
||||
// Should we override default for including synonyms for meta-data lookups
|
||||
private boolean overrideIncludeSynonymsDefault = false;
|
||||
|
||||
// Are we using generated key columns?
|
||||
private boolean generatedKeyColumnsUsed = false;
|
||||
|
||||
// Are we quoting identifiers?
|
||||
private boolean quoteIdentifiers = false;
|
||||
|
||||
|
|
@ -83,6 +77,12 @@ public class TableMetaDataContext {
|
|||
@Nullable
|
||||
private TableMetaDataProvider metaDataProvider;
|
||||
|
||||
// List of columns objects to be used in this context
|
||||
private List<String> tableColumns = new ArrayList<>();
|
||||
|
||||
// Are we using generated key columns
|
||||
private boolean generatedKeyColumnsUsed = false;
|
||||
|
||||
|
||||
/**
|
||||
* Set the name of the table for this context.
|
||||
|
|
@ -343,8 +343,8 @@ public class TableMetaDataContext {
|
|||
}
|
||||
}
|
||||
else {
|
||||
String message = "Unable to locate columns for table '" + tableName
|
||||
+ "' so an insert statement can't be generated.";
|
||||
String message = "Unable to locate columns for table '" + tableName +
|
||||
"' so an insert statement can't be generated.";
|
||||
if (isAccessTableColumnMetaData()) {
|
||||
message += " Consider specifying explicit column names -- for example, via SimpleJdbcInsert#usingColumns().";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -53,6 +53,12 @@ public interface TableMetaDataProvider {
|
|||
void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, @Nullable String catalogName,
|
||||
@Nullable String schemaName, @Nullable String tableName) throws SQLException;
|
||||
|
||||
/**
|
||||
* Get the table parameter meta-data that is currently used.
|
||||
* @return a List of {@link TableParameterMetaData}
|
||||
*/
|
||||
List<TableParameterMetaData> getTableParameterMetaData();
|
||||
|
||||
/**
|
||||
* Get the table name formatted based on meta-data information.
|
||||
* <p>This could include altering the case.
|
||||
|
|
@ -136,12 +142,6 @@ public interface TableMetaDataProvider {
|
|||
*/
|
||||
boolean isGeneratedKeysColumnNameArraySupported();
|
||||
|
||||
/**
|
||||
* Get the table parameter meta-data that is currently used.
|
||||
* @return a List of {@link TableParameterMetaData}
|
||||
*/
|
||||
List<TableParameterMetaData> getTableParameterMetaData();
|
||||
|
||||
/**
|
||||
* Get the string used to quote SQL identifiers.
|
||||
* <p>This method returns a space ({@code " "}) if identifier quoting is not
|
||||
|
|
|
|||
Loading…
Reference in New Issue