阅读量:3
前言🍭
❤️❤️❤️SSM专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️
终于到了MyBatis最后一篇,这篇讲的是动态SQL的使用。
复杂情况:动态SQL使用🍭
动态 SQL是Mybatis的强大特性之⼀,能够完成不同条件下不同的 SQL拼接。 可以参考官方文档:mybatis – MyBatis 3 | 动态 SQL
一、<if>标签🍭
在注册用户的时候,可能会有这样⼀个问题,有的信息是必填,有的是选填,那如果在添加⽤户的时候有不确定的字段传入,程序应该 如何实现呢?
这个时候就需要使用动态标签 <if> 来判断了,比如添加的时候性别 sex 为非必填字段,具体实现如下:
<insert id="insert"> insert into user( username, password, <if test="sex != null"> sex, </if> birthday, head ) values ( #{username}, #{password}, <if test="sex != null"> #{sex}, </if> #{birthday}, #{head} ) </insert>
需要注意 test 中的 sex,是传入对象中的属性,不是数据库字段。而且if标签都是成对出现的
二、<trim>标签🍭
之前的插入用户功能,只是有⼀个 sex 字段可能是选填项,如果所有字段都是非必填项,就考虑使用<trim>标签结合<if>标签,对多个字段都采取动态生成的方式。
<trim>标签中有如下属性: