一分钟带你了解下MyBatis的动态SQL!
2019-11-21 08:33:04来源:博客园 阅读 ()
一分钟带你了解下MyBatis的动态SQL!
MyBatis的强大特性之一便是它的动态SQL,以前拼接的时候需要注意的空格、列表最后的逗号等,现在都可以不用手动处理了,MyBatis采用功能强大的基于OGNL的表达式来实现,下面主要介绍下。
一、if标签
if是最常用的判断语句,主要用于实现某些简单的条件选择。基本使用示例如下:
<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">
select * from user where 1=1
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="age != null ">
and age = #{age}
</if>
</select>
二、where标签
上面的例子中使用了“1=1”,是为了避免后续条件不满足时候报错,那有没有办法避免这种写法呢?
当然有,就是接下来要说的
<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">
select * from user
<where>
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="age != null ">
and age = #{age}
</if>
</where>
</select>
三、trim标签
trim标签的主要属性如下
- prefix:前缀覆盖并增加其内容。
- suffix:后缀覆盖并增加其内容。
- prefixOverrides:前缀判断的条件。
- suffixOverrides:后缀判断的条件。
举两个例子。
- 使用前缀属性
<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">
select * from user
<trim prefix="WHERE" prefixOverrides="AND |OR " >
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="sex != null ">
or sex = #{sex}
</if>
<if test="age != null ">
and age = #{age}
</if>
</trim>
</select>
- 使用后缀属性
<update id="update" parameterType="Object">
UPDATE user
<trim suffix=" SET " suffixOverrides=",">
<if test="id != null ">id=#{id},</if>
<if test="name != null ">name=#{name},</if>
<if test="age != null ">age=#{age},</if>
</trim>
WHERE ID=#{id}
</update>
四、标签
foreach标签的主要属性如下
- item:表示循环中当前的元素。
- index:表示当前元素在集合的位置下标。
- collection:配置list的属性名等。
- open和close:配置的是以什么符号将这些集合元素包装起来。
- separator:配置的是各个元素的间隔符。
举个例子:
<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">
select * from user where id in
<foreach item="id" index="index" collection="userList"
open="(" separator="," close=")">
#{id}
</foreach>
</select>
到此MyBatis的动态SQL的常用功能已经介绍完了,有问题欢迎留言沟通哦!
推荐阅读
1.一分钟带你了解下Spring Security!
2.一分钟带你学会利用mybatis-generator自动生成代码!
3.手把手带你实战下Spring的七种事务传播行为
4.SpringBoot系列-整合Mybatis(注解方式)
5.SpringBoot系列-整合Mybatis(XML配置方式)
Java碎碎念,一个坚持原创的公众号,为您提供一系列系统架构、微服务、Java、SpringBoot、SpringCloud等高质量技术文章。
如果觉得文章不错,希望可以随手转发或者”在看“哦,非常感谢哈!
关注下方公众号后回复「1024」,有惊喜哦!
本文由博客一文多发平台 OpenWrite 发布!
原文链接:https://www.cnblogs.com/haha12/p/11904224.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:响应乱码问题
- 今天来介绍java 各版本的新特性,一篇文章让你了解 2020-06-10
- 是时候了解下软件开发的生命周期了! 2020-06-06
- 五分钟带你了解Spring IOC原理,纯干货建议收藏 2020-05-14
- 求求你了,不要再自己实现这些逻辑了,开源工具类不香吗? 2020-05-12
- 求你了,别再问我Zookeeper如何实现分布式锁了!!! 2020-04-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash