任务描述:
任务要求,SpringBoot项目为适应多种产品要求,需要服务同时支持oracle和mysql数据库,通过简单配置切换数据源
一、Maven配置
添加oracle和mysql驱动
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
二、application.yml配置
yml配置
# type配置不同数据源类型,比如oracle,mysql
database:
type: mysql
configure:
#**配置文件基础路径,遵循spring资源加载语法。
#如果是独立于程序包外部的磁盘路径,需要增加前缀“file:",示例:file:/home/mybatis/db/
#如果是开发环境且配置文件在类路径下,则配置:classpath:
baseDir: 'file:../common-config'
#**数据库配置文件路径
dbConfigPath: ${configure.baseDir}/db/${database.type}/database-Config.yml
三、数据库配置

database-Config.yml配置
db:
rsa:
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
user: root
pwd: root
initialSize: 1
minIdle: 5
maxActive: 10
四、数据源配置
<beans profile="evn_pro">
<bean id="dataSource" parent="abstractDatasource">
<property name="name" value="rsa" />
<!-- 基本属性 url、user、password -->
<property name="driverClassName" value="${db.rsa.driver}" />
<property name="url" value="${db.rsa.url}" />
<property name="username" value="${db.rsa.user}" />
<property name="password" value="${db.rsa.pwd}" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="${db.rsa.initialSize}" />
<property name="minIdle" value="${db.rsa.minIdle}" />
<property name="maxActive" value="${db.rsa.maxActive}" />
<!-- 配置获取连接等待超时的时间,单位毫秒 -->
<property name="maxWait" value="#{10 * 1000}" />
</bean>
</beans>
五、mybatis配置和映射文件
mybatis-config.xml 配置 databaseIdProvider
<databaseIdProvider type="DB_VENDOR">
<property name="SQL Server" value="sqlserver"/>
<property name="DB2" value="db2"/>
<property name="Oracle" value="oracle" />
<property name="MySQL" value="mysql" />
</databaseIdProvider>
通过databaseId指定不同数据源
select id="queryUserInfo" resultType="map" databaseId="mysql">
select userId,name from user_info
</select>
<select id="queryUserInfo" resultType="map" databaseId="oracle">
select userId,name from user_info
</select>
总结
SpringBoot+Mybatis本身对多数据源有很好的支持,通过增加数据源配置,区分加载不同数据源资源文件,然后通过mybatis映射文件对不同数据源的支持,实现通过简单配置,切换不同的数据源。
网友评论