博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql sql 片段_Mybatis Sql片段的应用
阅读量:6361 次
发布时间:2019-06-23

本文共 882 字,大约阅读时间需要 2 分钟。

f99621fef5224528cee3f279f2e0a6c6.png

在一个查询里,针对各种不同数据库,有时候只是一部分 SQL 是不相同的,为避免相同的部分复制多次,所以将不相同的部分进行适当的隔离,再重用就可以了。

在 MyBatis 里声明两段 片段,它们分别对应不同数据库:

可以发现,id 属性的值是相同的,而 databaseId 不同。在引用时将该 id 值赋给 include 的 refid,这样 MyBatis 就可以根据数据库的不同来选择相符的 Sql 片段。

为主 SQL 先声明好 引用:

接下来完整配置步骤如下:

为 MyBatis 准备好基础配置(mybatis.cfg.xml)

sqlserver

db2

oracle

mysql

h2

postgresql

dialect=sqlserver

配置好 PropertiesFactoryBean 和 VendorDatabaseIdProvider,然后为 SqlSessionFactoryBean 的 databaseIdProvider 属性加上 ref 引用。

在 Mapper 的 xml 文件里就可以应用 Sql 片段了(IOrgGradeCategoryDao.xml)

Select orgGradeCategoryId, orgGradeCategoryName, orgGradeCategoryCode, sortCode, description, isEnabled, createTime

From BaseOrgGradeCategory

Order By sortCode DESC

and orgGradeCategoryName like '%' + #{orgGradeCategoryName} + '%'

and orgGradeCategoryName like '%' || #{orgGradeCategoryName} || '%'

上述代码已针对 sqlserver 和 postgresql 两个数据库声明了 Sql 片段,在运行时,Mybatis 会根据数据库的不同而自行选择执行合适的片段。

转载地址:http://qkima.baihongyu.com/

你可能感兴趣的文章
使用arrayadapter和自定义adapter
查看>>
os模块
查看>>
二分查找法-java实现
查看>>
第三次毕业设计任务书
查看>>
Codeforces Round #311 (Div. 2)题解
查看>>
[c++]基类对象作为函数參数(赋值兼容规则)
查看>>
原型prototype
查看>>
7月24日云栖精选夜读:未来的超级智能网络攻击需要AI竞技俱乐部来拯救
查看>>
第八周技术学习+《你是锦瑟我为流年 三毛的千山万水》简记
查看>>
archlinux alsa安装,音量设置和音量信息保存
查看>>
ArcGIS Flex API 3.0新功能
查看>>
谁养鱼(四):遗传算法的实现
查看>>
第二次结对编程作业——必应词典客户端测试报告
查看>>
安装xampp后apache不能启动解决方法
查看>>
leetcode Spiral Matrix
查看>>
virtualbox centos 网络配置
查看>>
redis + twemproxy 分布式集群与部署
查看>>
c++ arrow operator ,, –> Operator,,,指针专属
查看>>
mysql查询当天所有数据sql语句
查看>>
Linux与JVM的内存关系分析(转)
查看>>