Mybatis 兼容多种数据库(利用databaseId)
数据库:达梦,Mysql增加配置类配置不通数据库databaseId标识@Configurationpublic class BeanConfig {@Beanpublic DatabaseIdProvider getDatabaseIdProvider() {DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider(
·
数据库:达梦,Mysql
PS:当前方法仅支持静态切换(每次切换需要重启服务)
增加配置类配置不同数据库databaseId标识
@Configuration
public class BeanConfig {
@Bean
public DatabaseIdProvider getDatabaseIdProvider() {
DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
Properties p = new Properties();
//厂商标识对应databaseId
p.setProperty("DM DBMS", "dm");
p.setProperty("MySQL", "mysql");
databaseIdProvider.setProperties(p);
return databaseIdProvider;
}
}
mapper.xml内写法
指定连mysql时执行的SQL
<select id="test" databaseId="mysql" resultType="java.lang.Integer">
select 1
</select>
指定连达梦数据库时执行的SQL
<select id="test" databaseId="dm" resultType="java.lang.Integer">
select 1
</select>
databaseId配置说明
mybatis在进行mapper注入时,会出现3种情况 1.该sql的databaseId和当前数据源的databaseId一样。 2.该sql的databaseId和当前数据源的databaseId不一样。 3.该sql没有配置databaseId 当同一方法被找到多个sql时,会优先使用databaseId相同的sql 如果没有databaseId相同的sql,再使用没有配置databaseId的sql databaseId不对应的sql是不会被使用
厂商标识查看方法
数据库driver包DatabaseMetaData类中找到getDatabaseProductName方法即可查看厂商标识
例如mysql
达梦
更多推荐
已为社区贡献1条内容
所有评论(0)