Skip to content

Commit 6f90947

Browse files
committed
Support configuration databaseId.
#911
1 parent b827bf6 commit 6f90947

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

mybatis-spring-boot-autoconfigure/src/main/java/org/mybatis/spring/boot/autoconfigure/MybatisProperties.java

+14
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,11 @@ public static class CoreConfiguration {
409409
*/
410410
private Properties variables;
411411

412+
/**
413+
* Specifies the database identify value for switching query to use.
414+
*/
415+
private String databaseId;
416+
412417
public Boolean getSafeRowBoundsEnabled() {
413418
return safeRowBoundsEnabled;
414419
}
@@ -657,6 +662,14 @@ public void setDefaultEnumTypeHandler(Class<? extends TypeHandler> defaultEnumTy
657662
this.defaultEnumTypeHandler = defaultEnumTypeHandler;
658663
}
659664

665+
public String getDatabaseId() {
666+
return databaseId;
667+
}
668+
669+
public void setDatabaseId(String databaseId) {
670+
this.databaseId = databaseId;
671+
}
672+
660673
public void applyTo(Configuration target) {
661674
PropertyMapper mapper = PropertyMapper.get().alwaysApplyingWhenNonNull();
662675
mapper.from(getSafeRowBoundsEnabled()).to(target::setSafeRowBoundsEnabled);
@@ -690,6 +703,7 @@ public void applyTo(Configuration target) {
690703
mapper.from(getDefaultSqlProviderType()).to(target::setDefaultSqlProviderType);
691704
mapper.from(getConfigurationFactory()).to(target::setConfigurationFactory);
692705
mapper.from(getDefaultEnumTypeHandler()).to(target::setDefaultEnumTypeHandler);
706+
mapper.from(getDatabaseId()).to(target::setDatabaseId);
693707
}
694708

695709
}

mybatis-spring-boot-autoconfigure/src/test/java/org/mybatis/spring/boot/autoconfigure/MybatisPropertiesTest.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ void testWithDefaultCoreConfiguration() {
116116
.getTypeHandler(JdbcType.class).getClass()).isEqualTo(EnumTypeHandler.class);
117117
assertThat(context.getBean(SqlSessionFactory.class).getConfiguration().getConfigurationFactory()).isNull();
118118
assertThat(context.getBean(SqlSessionFactory.class).getConfiguration().getVariables()).hasToString("{}");
119+
assertThat(context.getBean(SqlSessionFactory.class).getConfiguration().getDatabaseId()).isNull();
119120
});
120121
}
121122

@@ -196,7 +197,7 @@ void testWithCustomizeCoreConfiguration() {
196197
"mybatis.configuration.default-sql-provider-type:org.mybatis.spring.boot.autoconfigure.MybatisPropertiesTest$MySqlProvider",
197198
"mybatis.configuration.defaultEnumTypeHandler:org.apache.ibatis.type.EnumOrdinalTypeHandler",
198199
"mybatis.configuration.configuration-factory:org.mybatis.spring.boot.autoconfigure.MybatisPropertiesTest$MyConfigurationFactory",
199-
"mybatis.configuration.variables.key1:value1", "mybatis.configuration.variables.key2:value2")
200+
"mybatis.configuration.variables.key1:value1", "mybatis.configuration.variables.key2:value2", "mybatis.configuration.database-id:mysql")
200201
.run(context -> {
201202
assertThat(context.getBean(SqlSessionFactory.class).getConfiguration().getDefaultStatementTimeout())
202203
.isEqualTo(2000);
@@ -230,6 +231,8 @@ void testWithCustomizeCoreConfiguration() {
230231
.isEqualTo(MyConfigurationFactory.class);
231232
assertThat(context.getBean(SqlSessionFactory.class).getConfiguration().getVariables())
232233
.hasToString("{key1=value1, key2=value2}");
234+
assertThat(context.getBean(SqlSessionFactory.class).getConfiguration().getDatabaseId())
235+
.hasToString("mysql");
233236
}));
234237
}
235238

@@ -246,7 +249,7 @@ void checkProperties() {
246249
"sqlFragments", "typeHandlerRegistry", "mapperRegistry", "interceptors", "cacheNames", "incompleteResultMaps",
247250
"typeAliasRegistry", "incompleteMethods", "proxyFactory", "resultMaps", "defaultScriptingLanguageInstance",
248251
"parameterMaps", "keyGenerators", "parameterMapNames", "caches", "mappedStatementNames", "objectWrapperFactory",
249-
"objectFactory", "databaseId", "incompleteStatements", "resultMapNames", "defaultScriptingLanuageInstance",
252+
"objectFactory", "incompleteStatements", "resultMapNames", "defaultScriptingLanuageInstance",
250253
"keyGeneratorNames", "environment", "mappedStatements", "languageRegistry", "incompleteCacheRefs"));
251254
assertThat(mybatisCoreConfigurationProperties).isEmpty();
252255
}

0 commit comments

Comments
 (0)