简述Mybatis的动态SQL,列出常用的6个标签及作用(面试题)

MyBatis 动态SQL【重点】

SQL中注释

//方式一

-- 1=1

//方式二【推荐使用】

<!-- 1=1 -->

一.动态SQL

  • 动态SQL指的是:SQL语句可动态化
  • MyBatis的动态SQL中支持OGNL表达式语言,OGNL(Object Graph Navigation Language)对象导航图语言

二.常用标签

  • if 标签:用于完成简单的判断
  • where 标签:用于解决SQL语句中where关键字及where后第一个and或or的问题
  • trim 标签:可以在条件判断完的SQL语句前后添加或者去掉指定的字符

     trim标签和where标签效果差不多,但是一般都要where标签

    • prefix:添加前缀
    • prefixOverrides:去掉前缀
    • suffix:添加后缀
    • suffixOverrides:去掉后缀
  • set 标签:主要用于解决 set 关键字及多出一个【,】问题

    • 错误写法

    • 正确写法

       

  • choose 标签:主要是用于分支判断,类似 java 中 if-else【switch-case】结构,只会满足所有分支中的一个。

 错误情况:

 正确情况:

  • foreach 标签:类似于 java 中 for 循环,主要用于循环迭代
    • collection:要迭代的集合
    • item:当前从集合中迭代出的元素
    • separator:元素与元素之间的分隔符
    • open:开始字符
    • close:结束字符

代码一:循环迭代

 

代码二:批量处理

 

  •  sql 标签:提取可重用的SQL片段

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值