MyBatis 切换不同的类型数据库方案
生活随笔
收集整理的這篇文章主要介紹了
MyBatis 切换不同的类型数据库方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
下屬案例例當前結合SpringBoot 配置進行講解。
背景:
實現一個工程里面在部署階段支持切換不同類型數據庫支持。
方案一
數據源配置
關鍵代碼(是什么數據庫,該怎么配就怎么配)
spring:datasource:name: test# 使用druid數據源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 數據庫連接及驅動url: jdbc:mysql://127.0.0.1:3006/test?useUnicode=true&characterEncoding=UTF8username: rootpassword: *****# 使用druid數據源driver-class-name: com.mysql.jdbc.Driverdruid:# @需要修改校確認查詢語句validationQuery: select 'x' from dual
?MyBatis 配置,關鍵代碼【關鍵點1】:
關鍵屬性:database-id
# 配置數據庫
mybatis:mapper-locations: "classpath*:mapper/*.xml"configuration:database-id: mysql # mysql or oracle
Sql Map 示例 關鍵代碼【關鍵點2】:
關鍵屬性:databaseId
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.github.wxiaoqi.security.plan.mapper.DataSourceTestMapper"><select id="list" resultType="com.github.wxiaoqi.security.plan.entity.DataSourceTest" databaseId="mysql">select * from data_source_test limit 1
</select>
<select id="list" resultType="com.github.wxiaoqi.security.plan.entity.DataSourceTest" databaseId="oracle">select id,type_ as type from DATA_SOURCE_TEST
</select>
</mapper>
備注:
沒有設置databaseId表示:無論當前連接的什么數據庫,該條語句都能被使用。但是如上面這種情況,如果使用的mysql數據庫則databaseId=mysql 且id為list的語句可以執行,而同時id也是list且沒指定的databaseId的語句也可以被執行。這時系統將執行指定更加精確的databaseId=mysql且id為list的語句。
方案二
簡單粗暴
?數據配置
還是該怎么配置就怎么配置,這里就不重復了(參考方案一)。
SQL Map?
這里建兩個目錄,分別是mysql、oracle,分別存放其SQL Map 文件
resources\mapper\mysql
resources\mapper\oracle
?切換關鍵配置
#配置Mysql數據庫map資源路徑
mybatis:mapper-locations: "classpath*:mapper/mysql/*.xml"
#配置Oracle數據庫map資源路徑
mybatis:mapper-locations: "classpath*:mapper/oracle/*.xml"
?
總結
以上是生活随笔為你收集整理的MyBatis 切换不同的类型数据库方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 试管婴儿可以不用生吗
- 下一篇: 中国互联网+光伏发电行业商业模式创新与投