Polish "Add additional configuration properties for JdbcTemplate"
See gh-44470
This commit is contained in:
parent
baa89c5ce8
commit
0e09a2d25f
|
@ -27,7 +27,6 @@ import org.springframework.boot.convert.DurationUnit;
|
|||
*
|
||||
* @author Kazuki Shimizu
|
||||
* @author Stephane Nicoll
|
||||
* @author Yanming Zhou
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@ConfigurationProperties("spring.jdbc")
|
||||
|
@ -44,6 +43,12 @@ public class JdbcProperties {
|
|||
*/
|
||||
public static class Template {
|
||||
|
||||
/**
|
||||
* Whether to ignore JDBC statement warnings (SQLWarning). When set to false,
|
||||
* throw a SQLWarningException instead.
|
||||
*/
|
||||
private boolean ignoreWarnings = true;
|
||||
|
||||
/**
|
||||
* Number of rows that should be fetched from the database when more rows are
|
||||
* needed. Use -1 to use the JDBC driver's default configuration.
|
||||
|
@ -63,32 +68,30 @@ public class JdbcProperties {
|
|||
private Duration queryTimeout;
|
||||
|
||||
/**
|
||||
* If this variable is {@code false}, we will throw exceptions on SQL warnings.
|
||||
*/
|
||||
private boolean ignoreWarnings = true;
|
||||
|
||||
/**
|
||||
* If this variable is set to true, then all results checking will be bypassed for
|
||||
* any callable statement processing. This can be used to avoid a bug in some
|
||||
* older Oracle JDBC drivers like 10.1.0.2.
|
||||
* Whether results processing should be skipped. Can be used to optimize callable
|
||||
* statement processing when we know that no results are being passed back.
|
||||
*/
|
||||
private boolean skipResultsProcessing;
|
||||
|
||||
/**
|
||||
* If this variable is set to true then all results from a stored procedure call
|
||||
* that don't have a corresponding SqlOutParameter declaration will be bypassed.
|
||||
* All other results processing will be take place unless the variable
|
||||
* {@code skipResultsProcessing} is set to {@code true}.
|
||||
* Whether undeclared results should be skipped.
|
||||
*/
|
||||
private boolean skipUndeclaredResults;
|
||||
|
||||
/**
|
||||
* If this variable is set to true then execution of a CallableStatement will
|
||||
* return the results in a Map that uses case-insensitive names for the
|
||||
* parameters.
|
||||
* Whether execution of a CallableStatement will return the results in a Map that
|
||||
* uses case-insensitive names for the parameters.
|
||||
*/
|
||||
private boolean resultsMapCaseInsensitive;
|
||||
|
||||
public boolean isIgnoreWarnings() {
|
||||
return this.ignoreWarnings;
|
||||
}
|
||||
|
||||
public void setIgnoreWarnings(boolean ignoreWarnings) {
|
||||
this.ignoreWarnings = ignoreWarnings;
|
||||
}
|
||||
|
||||
public int getFetchSize() {
|
||||
return this.fetchSize;
|
||||
}
|
||||
|
@ -113,14 +116,6 @@ public class JdbcProperties {
|
|||
this.queryTimeout = queryTimeout;
|
||||
}
|
||||
|
||||
public boolean isIgnoreWarnings() {
|
||||
return this.ignoreWarnings;
|
||||
}
|
||||
|
||||
public void setIgnoreWarnings(boolean ignoreWarnings) {
|
||||
this.ignoreWarnings = ignoreWarnings;
|
||||
}
|
||||
|
||||
public boolean isSkipResultsProcessing() {
|
||||
return this.skipResultsProcessing;
|
||||
}
|
||||
|
|
|
@ -43,12 +43,12 @@ class JdbcTemplateConfiguration {
|
|||
ObjectProvider<SQLExceptionTranslator> sqlExceptionTranslator) {
|
||||
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
|
||||
JdbcProperties.Template template = properties.getTemplate();
|
||||
jdbcTemplate.setIgnoreWarnings(template.isIgnoreWarnings());
|
||||
jdbcTemplate.setFetchSize(template.getFetchSize());
|
||||
jdbcTemplate.setMaxRows(template.getMaxRows());
|
||||
if (template.getQueryTimeout() != null) {
|
||||
jdbcTemplate.setQueryTimeout((int) template.getQueryTimeout().getSeconds());
|
||||
}
|
||||
jdbcTemplate.setIgnoreWarnings(template.isIgnoreWarnings());
|
||||
jdbcTemplate.setSkipResultsProcessing(template.isSkipResultsProcessing());
|
||||
jdbcTemplate.setSkipUndeclaredResults(template.isSkipUndeclaredResults());
|
||||
jdbcTemplate.setResultsMapCaseInsensitive(template.isResultsMapCaseInsensitive());
|
||||
|
|
|
@ -52,7 +52,6 @@ import static org.mockito.Mockito.mock;
|
|||
* @author Stephane Nicoll
|
||||
* @author Kazuki Shimizu
|
||||
* @author Dan Zheng
|
||||
* @author Yanming Zhou
|
||||
*/
|
||||
class JdbcTemplateAutoConfigurationTests {
|
||||
|
||||
|
@ -67,10 +66,10 @@ class JdbcTemplateAutoConfigurationTests {
|
|||
assertThat(context).hasSingleBean(JdbcOperations.class);
|
||||
JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class);
|
||||
assertThat(jdbcTemplate.getDataSource()).isEqualTo(context.getBean(DataSource.class));
|
||||
assertThat(jdbcTemplate.isIgnoreWarnings()).isEqualTo(true);
|
||||
assertThat(jdbcTemplate.getFetchSize()).isEqualTo(-1);
|
||||
assertThat(jdbcTemplate.getQueryTimeout()).isEqualTo(-1);
|
||||
assertThat(jdbcTemplate.getMaxRows()).isEqualTo(-1);
|
||||
assertThat(jdbcTemplate.isIgnoreWarnings()).isEqualTo(true);
|
||||
assertThat(jdbcTemplate.isSkipResultsProcessing()).isEqualTo(false);
|
||||
assertThat(jdbcTemplate.isSkipUndeclaredResults()).isEqualTo(false);
|
||||
assertThat(jdbcTemplate.isResultsMapCaseInsensitive()).isEqualTo(false);
|
||||
|
@ -80,8 +79,8 @@ class JdbcTemplateAutoConfigurationTests {
|
|||
@Test
|
||||
void testJdbcTemplateWithCustomProperties() {
|
||||
this.contextRunner
|
||||
.withPropertyValues("spring.jdbc.template.fetch-size:100", "spring.jdbc.template.query-timeout:60",
|
||||
"spring.jdbc.template.max-rows:1000", "spring.jdbc.template.ignore-warnings:false",
|
||||
.withPropertyValues("spring.jdbc.template.ignore-warnings:false", "spring.jdbc.template.fetch-size:100",
|
||||
"spring.jdbc.template.query-timeout:60", "spring.jdbc.template.max-rows:1000",
|
||||
"spring.jdbc.template.skip-results-processing:true",
|
||||
"spring.jdbc.template.skip-undeclared-results:true",
|
||||
"spring.jdbc.template.results-map-case-insensitive:true")
|
||||
|
@ -89,10 +88,10 @@ class JdbcTemplateAutoConfigurationTests {
|
|||
assertThat(context).hasSingleBean(JdbcOperations.class);
|
||||
JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class);
|
||||
assertThat(jdbcTemplate.getDataSource()).isNotNull();
|
||||
assertThat(jdbcTemplate.isIgnoreWarnings()).isEqualTo(false);
|
||||
assertThat(jdbcTemplate.getFetchSize()).isEqualTo(100);
|
||||
assertThat(jdbcTemplate.getQueryTimeout()).isEqualTo(60);
|
||||
assertThat(jdbcTemplate.getMaxRows()).isEqualTo(1000);
|
||||
assertThat(jdbcTemplate.isIgnoreWarnings()).isEqualTo(false);
|
||||
assertThat(jdbcTemplate.isSkipResultsProcessing()).isEqualTo(true);
|
||||
assertThat(jdbcTemplate.isSkipUndeclaredResults()).isEqualTo(true);
|
||||
assertThat(jdbcTemplate.isResultsMapCaseInsensitive()).isEqualTo(true);
|
||||
|
|
Loading…
Reference in New Issue