10.5 databaseIdProvider数据库厂商标识(MyBatis的XML配置文件) -《SSM深入解析与项目实战》

举报
谙忆 发表于 2021/05/26 15:26:39 2021/05/26
【摘要】 项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm 文章目录 10.8 databaseIdProvider数据库厂商标识 MyBatis可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的databaseId属性。MyBatis会加载不带da...

项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm

文章目录

10.8 databaseIdProvider数据库厂商标识

MyBatis可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的databaseId属性。MyBatis会加载不带databaseId 属性和带有匹配当前数据库 databaseId 属性的所有语句。如果同时找到带有databaseId和不带databaseId的相同语句,则后者会被舍弃。

简单的理解,通过配置databaseId,我们可以针对同一个Mapper方法写两个SQL语句。通过配置不同的databaseId,可以匹配到不同的databaseId。例如,在MySQL中获取系统时间的函数为NOW()函数,而Oracle中获取系统时间的函数为to_char(susdate,’yyyy-mm-dd hh24:mi:ss’),如果需要在SQL中用到系统时间的函数,那么针对不同的数据库,写法肯定是不同的。这个时刻,databaseIdProvider久派上用场了。

如果要支持多厂商特性只要像代码清单10-11这样在mybatis-config.xml文件中按照合适的顺序加入 databaseIdProvider标签即可。

代码清单10-11:添加databaseIdProvider标签

<databaseIdProvider type=
  
 

    文章来源: chenhx.blog.csdn.net,作者:谙忆,版权归原作者所有,如需转载,请联系作者。

    原文链接:chenhx.blog.csdn.net/article/details/110878804

    【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
    • 收藏
    • 关注作者

    评论(0

    0/1000
    抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。