springboot+mybatis 多数据库支持
Posted 斌凯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot+mybatis 多数据库支持相关的知识,希望对你有一定的参考价值。
1.配置application.yml
mybatis:
mapper-locations: classpath:/mybatis/mapping/*.xml
configuration:
map-underscore-to-camel-case: true #开启驼峰命名
database-id: ${database.type}
type-aliases-package: com.mtwl.entity
注意database-id 的配置
2.在springboot中配置DatabaseIdProvider
@Bean
public DatabaseIdProvider getDatabaseIdProvider(){
DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
Properties properties = new Properties();
properties.setProperty("Oracle","oracle");
properties.setProperty("mysql","mysql");
properties.setProperty("DB2","db2");
properties.setProperty("Derby","derby");
properties.setProperty("H2","h2");
properties.setProperty("HSQL","hsql");
properties.setProperty("Informix","informix");
properties.setProperty("Microsoft SQL Server","sqlserver");
properties.setProperty("PostgreSQL","postgresql");
properties.setProperty("Sybase","sybase");
properties.setProperty("Hana","hana");
databaseIdProvider.setProperties(properties);
return databaseIdProvider;
}
注意:数据库版本是否正确
3.在mapper.xml中使用
方法1
<select id="selectTop" resultType="java.util.Map" parameterType="java.lang.Integer" databaseId="sqlserver">
select top(#{value})*
from kcjs
</select>
<select id="selectTop" resultType="java.util.Map" parameterType="java.lang.Integer" databaseId="mysql">
select *
from kcjs limit 0,#{value}
</select>
方法2
<select id="selectTop" resultType="java.util.Map" parameterType="java.lang.Integer">
select
<if test="_databaseId==sqlserver">
top(#{value})*
from kcjs
</if>
<if test="_databaseId==mysql">
*
from kcjs limit 0,#{value}
</if>
</select>
以上是关于springboot+mybatis 多数据库支持的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot+Mybatis 通过databaseIdProvider支持多数据库
SpringBoot整合MYBATIS,多数据源,事务,支持JAVA -JAR 启动.
SpringBoot :springboot + mybatis 多数据源最简解决方案