当前位置: 首页 > news >正文

Mybatis配置-数据库厂商标识(databaseIdProvider)

MyBatis可以根据数据库供应商执行不同的语句。多数据库供应商支持是基于映射语句的databaseId属性。MyBatis将加载所有没有databaseId属性或具有与当前数据库匹配的databaseId属性的语句。如果找到具有和不具有databaseId的相同语句,则后者将被丢弃。要启用多供应商支持,请按照以下步骤在mybatis-config.xml文件中添加databaseIdProvider:

<databaseIdProvider type="DB_VENDOR" />

DB_VENDOR实现databaseIdProvider的数据库ID被设置为DatabaseMetaData#getDatabaseProductName()返回的字符串。由于通常该字符串过长,并且相同产品的不同版本可能返回不同的值,您可能希望通过添加以下属性将其转换为较短的字符串:

<databaseIdProvider type="DB_VENDOR"><property name="SQL Server" value="sqlserver"/><property name="DB2" value="db2"/><property name="Oracle" value="oracle" />
</databaseIdProvider

当提供了属性时,DB_VENDOR数据库ID提供程序会在返回的数据库产品名称中查找与第一个找到的键相对应的属性值,如果没有匹配的属性,则设置为“null”。在这种情况下,如果getDatabaseProductName()返回“Oracle (DataDirect)”,则databaseId将设置为“oracle”。

您可以通过实现org.apache.ibatis.mapping.DatabaseIdProvider接口来构建自己的DatabaseIdProvider,并在mybatis-config.xml中注册它:

public interface DatabaseIdProvider {default void setProperties(Properties p) { // Since 3.5.2, changed to default method// NOP}String getDatabaseId(DataSource dataSource) throws SQLException;
}

http://www.lryc.cn/news/263708.html

相关文章:

  • 【Java】使用递归的方法获取层级关系数据demo
  • 工业6轴机械臂运动学逆解(解析解)
  • 管理类联考——数学——真题篇——按题型分类——充分性判断题——蒙猜A/B
  • 为什么GRU和LSTM能够缓解梯度消失或梯度爆炸问题?
  • 【力扣100】146.LRU缓存
  • 【Vue中给输入框加入js验证_blur失去焦点进行校验】
  • vue3项目引入电子签名(可横屏竖屏)
  • mysql中count(*)、count(1)、count(主键)、count(字段)的区别
  • Nginx生成自签名证书从而添加域名的HTTPS访问
  • 无框架Java转go语言写http与tcp请求
  • 【Git】Git基本操作
  • JavaSE学习笔记 Day20
  • 【蓝桥杯选拔赛真题52】python空调模式 第十四届青少年组蓝桥杯python 选拔赛比赛真题解析
  • Android Studio: 解决Gradle sync failed 错误
  • 【手写数据库】从零开始手写数据库内核,行列混合存储模型,学习大纲成型了
  • 机器学习中的一些经典理论定理
  • c语言:成本100元,40%的利润怎么计算|练习题
  • 【Python必做100题】之第二十二题(复制列表)
  • Java 数据结构篇-实现堆的核心方法与堆的应用(实现 TOP-K 问题:最小 k 个数)
  • startUML6.0.1破解方法
  • Python实现多种图像分割方法:基于阈值分割和基于区域分割
  • SQL学习笔记+MySQL+SQLyog工具教程
  • SpringBoot的日志管理
  • leetcode---76. 最小覆盖子串 [C++/滑动窗口+哈希表]
  • Kafka 分级存储在腾讯云的实践与演进
  • 域架构下的功能安全思考
  • python多线程介绍
  • 征文榜单 | 腾讯云向量数据库获奖名单公布
  • 如何预防[[MyFile@waifu.club]].wis [[backup@waifu.club]].wis勒索病毒感染您的计算机?
  • 中国风春节倒计时【实时倒计时】