动态查询使用<where>标签和<if>标签来完成。

     其中,模糊查询的sql写法如下:

1,like '%${name}%'

select * from user
<where>
    <if test="name!=null and name!=''">
            and name like '%${name}%'
    </if>
</where>

2,concat('%',#{name},'%')

select * from user
<where>
    <if test="name!=null and name!=''">
            and name like concat('%',#{name},'%')
    </if>
</where>

3,bind

select * from user
<where>
    <if test="name!=null and name!=''">
           <bind name="userName" value="'%'+name+'%'"/>
            and name like #{userName}
    </if>
</where>

第一种方法不安全,第二种方法只适用于Mysql和Sqlserver,Oracle不适用。第三种方法都可以。

 posted on 2020-10-20 08:50  会飞的金鱼  阅读(438)  评论(0)    收藏  举报