MyBatis之动态SQL

动态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>

相关文章
相关标签/搜索