mybatis|mybatis mapper.xml中如何根据数据库类型选择对应SQL语句
目录
- mapper.xml根据数据库类型选择对应SQL语句
- 1、spring-database.xml文件中配置
- 2、mapper.xml文件中配置
- mapper.xml动态SQL语句用法
- if
- trim
- where
- set
- choose(when、otherwise)
- foreach
mapper.xml根据数据库类型选择对应SQL语句
1、spring-database.xml文件中配置
db2oraclemysql
对于sessionFactory的配置,主要是标红的语句一定要有,其它按照自己原有的配置走。
【mybatis|mybatis mapper.xml中如何根据数据库类型选择对应SQL语句】 helperDialect=oraclereasonable=truesupportMethodsArguments=trueparams=count=countSqlautoRuntimeDialect=true
2、mapper.xml文件中配置
select * from SM_USERS_TB select * from SM_USERS_TB
若写上databaseId = "mysql",则在数据源为mysql类型时,自动执行该SQL语句,若不写databaseId ,且同时存在相同ID的SQL语句,则只要是非mysql数据库的数据源,都会调用该条SQL语句。
mapper.xml动态SQL语句用法
文章图片
用于实现动态SQL的元素主要有
if
用于判断示例
update smbms_user userCode=#{userCode}, userName=#{userName}, userPassword=#{userPassword}, gender=#{gender}, phone=#{phone}, address=#{address}, userRole=#{userRole}, createdBy=#{createdBy}, where id=#{id}
trim
trim
属性 prefix suffix prefixOverrides suffixOverrides 更灵活地去除多余关键字 替代where和setif+trim
使用if+trim替代if+set进行更新用户表数据,效果一样的 如下:
update smbms_user userCode = #{userCode}, userCode = #{userName }, userPassword=#{userPassword },
其中:
prefix
表示有一个if成立则插入where语句suffix
表示后缀,插入到最后,与perfix正好相反suffixOverrides="xxx"
表示如果最后生成的sql语句多一个xxx,则自动去掉prefixOverrides
的意思是去掉前缀,和suffixOverrides的使用正好相反
where
SELECT u.*,r.roleName,r.roleCode FROM smbms_user u INNER JOIN smbms_role r ON u.userrole=r.idAND userCode LIKE CONCAT('%',#{usercode},'%') AND userRole=#{userrole} AND gender=#{gender}
set
update smbms_user userCode=#{userCode}, userName=#{userName}, userPassword=#{userPassword}, gender=#{gender}, phone=#{phone}, address=#{address}, userRole=#{userRole}, createdBy=#{createdBy}, where id=#{id}
choose(when、otherwise)
相当于Java中switch语句 当when有条件满足的时候,就跳出choose
… … … ……
foreach
迭代一个集合,通常用于in条件 属性 item index collection:必须指定 list array map-key open separator close
select * from smbms_user where userCode in#{userCode}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- 直播系统聊天技术(八)(vivo直播系统中IM消息模块的架构实践)
- 投稿|从“试点”“省标”到“国标”:中药配方颗粒的30年
- #新中式宠妈艺术#|#新中式宠妈艺术# 母亲的眼泪
- 投稿|五年中概股,涨了个寂寞
- 5.Java中单例模式
- 佛教中的“有求必应”是真的么()
- 都说十二年一个轮回
- 肯定孩子
- 学霸与学渣,社会中孰“霸”孰“渣”()
- 笔记|如何在若依中做数据权限