MyBatis--------模糊查询

一、使用${ }

         不能够防止SQL注入。MySQL与Oracle通用

<select id="get" resultType="..">

        SELECT * FROM t_tag where tag_name LIKE '%${tagName}%'

</select>

二、把模糊查询的 %加上引号

        就像这样子, "%"#{param}"%"

<select id="get" resultType="..">  

        SELECT * FROM t_tag where tag_name LIKE "%"#{tagName}"%"  
            
</select>  

        多个匹配条件可以像这样写 

    <select id="findAllScheduleJobClassNames" resultType="java.lang.String">
         SELECT u.stu_account FROM 表 u
         <if test="nameOrNum != null and nameOrNum !=''">
              AND (u.stu_account like concat(concat('%',#{nameOrNum}),'%')
                         or 
                   u.name like concat(concat('%',#{nameOrNum}),'%') )
         </if>
    </select>

三、使用函数进行拼

    最推荐的方式:

    concat(a,b)函数能够拼接字符串。如下

<select id="get" resultType="..">

        SELECT * FROM t_tag tag_name LIKE concat(concat("%",#{tagName),"%")

</select>

Oracle版本 

        <if test=" projectTypeName!= null and  projectTypeName!= ''">
            AND t.project_type_name  like '%' || #{projectTypeName} || '%'
        </if>

更多MyBatis使用经验

         MyBaits操作经验目录贴

posted @ 2022-07-17 12:16  小大宇  阅读(84)  评论(0编辑  收藏  举报