如何同时支持mysql和SQL_Mybatis同时支持多种数据库(oracle 和MySQL)

这里说下对多种数据库的支持,不是多个数据源。

这里要用到mybatis的databaseId。如下:

SELECT EXISTS(SELECT 1 FROM `${db}`.test_table WHERE table_id=#{tableId} LIMIT 1)

SELECT COUNT(*) FROM ${db}."test_table " WHERE "table_id"=#{tableId}

在mapper.xml中加上databaseId就可以指定要用的sql,mybatis会根据链接过来的DataSource自动识别。

我这里使用的是spring boot,加上一个bean的配置:

/*** 自动识别使用的数据库类型

* 在mapper.xml中databaseId的值就是跟这里对应,

* 如果没有databaseId选择则说明该sql适用所有数据库

**/@BeanpublicDatabaseIdProvider getDatabaseIdProvider(){

DatabaseIdProvider databaseIdProvider= newVendorDatabaseIdProvider();

Properties properties= newProperties();

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("MS-SQL","ms-sql");

properties.setProperty("PostgreSQL","postgresql");

properties.setProperty("Sybase","sybase");

properties.setProperty("Hana","hana");

databaseIdProvider.setProperties(properties);returndatabaseIdProvider;

}

我这里列出了所有支持的数据库类型,实际使用的时候根据自己要用的数据库添加就好。

在配置文件中正常配置数据库信息就可以了。

如果使用的时候有问题,在配置文件中加上下边配置

database:

type: oracle

#mybatis设置

mybatis:

mapper-locations: classpath*:mapper/*.xml

configuration:

database-id: ${database.type}

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

主要是database-id这个 。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

转载来着 https://blog.csdn.net/qq_35981283/article/details/79503571

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值