mybatis动态SQL下进行模糊查询的几种方式,其中两个存疑
1.传参时进行%%的拼接,需要进行null判断,因为动态sql的if标签判断会由于%null%失效
1 <select id="findByCondition02" parameterType="map" resultType="Brand"> 2 select * from tb_brand 3 <where> 4 <if test="status!=null"> 5 status =#{status} 6 </if> 7 <if test="companyName!=null"> 8 2.拼接单引号 注意加空格 9 10 and company_name like '%' #{companyName} '%' 11 </if> 12 <if test="brandName!=null"> 13 3.拼接双引号 14 and brand_name like "%"#{brandName}"%"; 15 </if> 16 </where> 17 </select>
4.使用concat函数进行拼接
非常不推荐使用'%${}%'进行拼接,有SQL注入的风险