Ibatis查询条件对于特殊字符的处理方法
Ibatis的查询语句,在where中如果查询条件为%或_等特殊字符时,会把该表所有记录都显示出来,所以这些字符需要特殊处理一下:
比如在查询条件中,输入的查询条件中如果带有%,当时是在工具类包中定义了一个特殊的工具类
处理特殊字符的代码
public static String specialCharacterManage(String chars){
if(null != chars){
if(chars.contains("%")){
chars = chars.replace("%", "\\%");
}
if(chars.contains("_")){
chars = chars.replace("_", "\\_");
}
}
return chars;
}
这样,就将输入的%转义成\%,然后dao层代码调用这个方法对查询条件字符串进行一下处理。
但要注意:ibatis的xml文件要在sql语句中加上 escape '\'来把\再去掉,这样是为了防止数据库记录中真的有包含%或_的记录却未被查询出来。