Mybatis如何解決sql中like通配符模糊匹配問題
sql中like通配符模糊匹配問題
針對oracle數據庫:
將查詢條件通過功能類處理
/** * Description: 處理轉義字符%和_,針對ORACLE數據庫 * * @param str * @return */ public static String escapeStr(String str) { String temp = ""; for (int i = 0; i < str.length(); i++) { if (str.charAt(i) == '%' || str.charAt(i) == '_') { temp += "\\" + str.charAt(i); } else { temp += str.charAt(i); } } return temp; }
後臺Contronller獲得查詢條件
並調用工具類處理
String areaname = request.getParameter("Areaname"); if (areaname != null) { if ("".equals(areaname)) { areaname = null; } else { areaname = StringUtils.escapeStr(areaname); } }
mapper.xml中對應的使用方法
<if test="param.areaname!=null"> and areaname like '%'||#{param.areaname}||'%' escape '\'</if>
使用like實現模糊匹配
方式一
select * from t_user where name like ' %${value}% '
方式二
select * from t_user where name like '%'||${value}||'%'
方式三
select * from t_user where name like #{do_it_in_java}
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- java中的空指針異常情況以及解決方案
- Mybatis中@Param註解的用法詳解
- SpringMvc接受請求參數的幾種情況演示
- mybatis3中@SelectProvider傳遞參數方式
- MyBatis通用Mapper中的通用example(排序)詳解