mybatis一对多配置MyBatis切换不同的类型数据库⽅案下属案例例当前结合SpringBoot 配置进⾏讲解。
背景:
实现⼀个⼯程⾥⾯在部署阶段⽀持切换不同类型数据库⽀持。
⽅案⼀
数据源配置
mysql语句转oracle关键代码(是什么数据库,该怎么配就怎么配)
spring:
datasource:
name: test
# 使⽤druid数据源
type: com.alibaba.druid.pool.DruidDataSource
# @需要修改数据库连接及驱动
url: jdbc:mysql://127.0.0.1:3006/test?useUnicode=true&characterEncoding=UTF8
username: root
password: *****
# 使⽤druid数据源
driver-class-name: sql.jdbc.Driver
druid:
# @需要修改校确认查询语句
validationQuery: select 'x' from dual
MyBatis 配置,关键代码【关键点1】:
关键属性:database-id
js设置输入框内容
# 配置数据库
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 "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd">
免费自制字体软件<mapper namespace="com.github.wxiaoqi.security.plan.mapper.DataSourceTestMapper">
<select id="list" resultType="com.github.wxiaoqi.ity.DataSourceTest" databaseId="mysql">
select * from data_source_test limit 1
</select>
<select id="list" resultType="com.github.wxiaoqi.ity.DataSourceTest" databaseId="oracle">
select id,type_ as type from DATA_SOURCE_TEST
</select>
</mapper>
备注:
没有设置databaseId表⽰:⽆论当前连接的什么数据库,该条语句都能被使⽤。但是如上⾯这种情况,如果使⽤的mysql数据库则databaseId=mysql 且id为list的语句可以执⾏,⽽同时id也是list且没指
c语言定义数组函数定的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"
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论