针对oracle数据库:
1、将查询条件通过功能类处理
package com.catarc.common.util;
public class Sql {
/**
* 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;
}
}
2、后台Contronller获得查询条件,并调用工具类处理
String orderNum = order.getOrderName();
if (orderNum == null || "".equals(orderNum)) {
orderNum = null;
}else {
orderNum = Sql.escapeStr(orderNum);
order.setOrderName(orderNum);
}
3、mapper.xml中对应的使用方法:
<if test='orderName != null and orderName !=""'>
AND PK_T_ORDER_ONAME LIKE '%'||#{orderName}||'%'ESCAPE '\'
</if>