MyBatis学习(4)-动态Sql

在过往的学习中,总想着写一个比较通用的数据库交互方法,但奈何编写sql语句时,拼串比较麻烦,涉及到字符串的修改。而在MyBatis则提供了一种很好的方式来动态的编写sql,使一个sql语句,或者一个方法,兼容更多。

MyBatis提供的了一些标签,使编写映射文件中的sql更加的灵活:

  • if
<if test=""></if>

其中test中编写需要判断的条件,而且对于方法传递来的参数不用使用#{参数名},只需要使用参数名即可,这里面如果涉及到&,<,>,""等,需要使用其实体名称(转义字符)

如:

& -> &amp;
< -> &lt;
> -> &gt;
" -> &quto;

标签体内则编写需要添加到的sql语句。这里编写sql语句的需要自己加逻辑连接符。

  • choose

多分支选择,格式:

<choose>
	<when test="条件1">sql1</when>
	<when test="条件2">sql2</when>
	<otherwise>其他sql</otherwise>
</choose>

该标签内有两个标签when和otherwise,when:当test为真,则进行其中的操作,这里是拼接sql,否则进行下一个条件判断,若所有条件都不满足,并且有otherwise存在,则相应处理otherwise标签体内容。

同if一样,test为判断的条件。

  • where

这是动态添加where语句,编写sql,建议用where标签代替where。where还可以去掉一些不应该存在的逻辑连接词,where一般都会和其他的标签一起使用,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值