MyBatis 解决模糊查询包含特殊字符
生活随笔
收集整理的這篇文章主要介紹了
MyBatis 解决模糊查询包含特殊字符
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
第一塊:MyBatis 實(shí)現(xiàn)模糊查詢方式
1.1 sql中字符串拼接
SELECT * FROM 表名 WHERE 字段名 LIKE CONCAT(CONCAT('%', #{參數(shù)}), '%');1 2. 使用 ${…} 代替 #{…}
SELECT * FROM 表名 WHERE 字段名 LIKE '%${參數(shù)}%';注意:($不能防止sql注入, #{}—> 可以防止sql注入的問題)
1.3 程序中拼接
Java 代碼
String searchText = new StringBuilder("%").append(text).append("%").toString(); parameterMap.put("text", searchText);Mapper 映射文件
SELECT * FROM 表名 WHERE 字段名 LIKE #{參數(shù)};第二塊:MyBatis 實(shí)現(xiàn)特殊字符處理之<![CDATA[ ]]>
2.1 <![CDATA[ ]]> 簡介
它的全稱為character data,以"** “開始,以” ]]>" 結(jié)束,在兩者之間嵌入不想被解析程序解析的原始數(shù)據(jù),解析器不對CDATA區(qū)中的內(nèi)容進(jìn)行解析,而是將這些數(shù)據(jù)原封不動地交給下游程序處理。
2.2 MyBatis 自動轉(zhuǎn)義特殊字符表
| & | & |
| < | < |
| > | > |
| " | " |
| ’ | ' |
2.3 <![CDATA[ ]]> 特殊字符
xml 中表示: <= 小于等于、 >= 大于等于 需加 這樣的標(biāo)記: **** xml中有&的符號,需要
<![CDATA[&]]>這樣表示&<= 小于等于 :<![CDATA[ <= ]]>
>= 大于等于:<![CDATA[ >= ]]>
第三塊 模糊查詢包含特殊字符
解決辦法: 使用 ${…} + <![CDATA[ ]]>
模板:
<select id="searchAll" parameterType="map" resultType="map">SELECT *FROM 表名 PWHERE 1=1 <if test="參數(shù) != null and 參數(shù) != ''"><![CDATA[ AND P.字段名 LIKE '%${參數(shù)}%']]></if> </select>總結(jié)
以上是生活随笔為你收集整理的MyBatis 解决模糊查询包含特殊字符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Debug Tensorflow: Ty
- 下一篇: Debug system:无法显示数据