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 '\'来把\再去掉,这样是为了防止数据库记录中真的有包含%或_的记录却未被查询出来。

posted @ 2012-06-09 22:05  积累从点滴开始  阅读(2789)  评论(1编辑  收藏  举报