动态SQLjava
通常的状况我就再也不赘述了,官方文档上都有,此处我就写几个个案吧.dom
Like模糊查询:ide
有三种状况:spa
(1) '%'||#{username}||'%'blog
(2) #{username} 在java代码中写入userDao.queryUserByName("%2%");文档
(3) <select id="queryUserByName" parameterType="String" resultType="User">it
<bind name="pattern" value="'%' + _parameter + '%'" />io
SELECT * FROM test_usertest
WHERE title LIKE #{pattern}email
</select>
注:此处的_parameter 是指传入的String类型参数
Where条件加if判断:
<trim prefix="WHERE" prefixOverrides="AND |OR ">
<if test="_parameter !=null">
and username like '%'||#{username}||'%'
</if>
</trim>
或
<where>
<if test="_parameter !=null">
and username like '%'||#{username}||'%'
</if>
</where>
动态更新语句类似的解决方案是 set
<update id="updateAuthorIfNecessary"
parameterType="domain.blog.Author">
update Author
<set>
<if test="username != null">username=#{username},</if>
<if test="password != null">password=#{password},</if>
<if test="email != null">email=#{email},</if>
<if test="bio != null">bio=#{bio}</if>
</set>
where id=#{id}</update>