前言
本篇介绍MyBatis里如何使用动态SQL,了解如何去简单使用动态标签;如有错误,请在评论区指正,让我们一起交流,共同进步!
本文开始
MyBatis - 动态 SQL
使用动态SQL的好处:根据不同的条件拼接 SQL 语句,提高了SQL的灵活性;
if标签
- if标签:判断时使用,满足test中的判断,执行if条件
格式:< if test=“xxx != null”> < /if >
-写在.xml文件中
-test中的是类中属性的值
trim标签
- trim标签:判断时使用,去除后缀 与 if标签配合使用
格式:
属性:prefix: 这个语句前面加前缀,例如 左括号(
suffix: 这个语句前面加后缀,例如 右括号(
suffixOverrides:去掉整个语句后缀,例如 末尾的逗号 ,
示例:
<insert id="add4">
insert into userinfo
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="username != null">
username,
</if>
<if test="password">
password,
</if>
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="username != null">
#{username},
</if>
<if test="password != null">
#{password},
</if>
</trim>
</insert>
where标签
- where标签:查询时使用,如果有添加条件,就生成where语句;没有就不添加条件,不会生成where语句;
-可以去掉前缀and (如下示例,在只有第二个条件时,where会自动去掉and)
示例:文章来源:https://www.toymoban.com/news/detail-634581.html
<select id="testWhere" resultType="com.example.demo.model.Userinfo">
select * from userinfo
<where>
<if test="id > 0">
id=#{id}
</if>
<if test="username != null">
and username=#{username}
</if>
</where>
</select>
update + set 标签
- update + set标签:修改时使用;
-会自动去掉最后的后缀逗号,
<update id="update">
update userinfo
<set>
<if test="username != null">
username=#{username},
</if>
<if test="password != null">
password=#{password}
</if>
</set>
where id=#{id}
</update>
delete + foreach 标签
- delete + foreach标签:删除时使用,删除多个就需要遍历删除,这就使用了foreach;
属性:collection: 为传递过来的集合名称;
open: 语句前缀;
close: 语句后缀;
item: 遍历的每个对象的名称;
separator: 每次遍历 的 分隔符;
<delete id="delByIds">
delete from userinfo
where id in
<foreach collection="lists" open="(" close=")" item="id" separator=",">
#{id}
</foreach>
</delete>
总结
✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!文章来源地址https://www.toymoban.com/news/detail-634581.html
到了这里,关于认识MyBatis 之 MyBatis的动态SQL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!