mybatis 对于特殊字符问题处理

  <select id="getVagueQuery" parameterType="java.lang.String" resultType="com.kangwei.pojo.tz.T_SB_SCFZSS_SD">
        SELECT
            OBJ_ID,
            JMLX,
            DMCC,
            SDCD,
            JSL,
            SGDW,
            JGRQ,
            YWDWMC,
            WHBZMC,
            SDMC,
            SDBH,
            WHBZ,
            ZCXZ,
            DAMC
        FROM SCYW.T_SB_SCFZSS_SD
        WHERE SCYW.T_SB_SCFZSS_SD.SDBH LIKE concat(concat('%', #{value}), '%') OR SCYW.T_SB_SCFZSS_SD.SDMC LIKE concat(concat('%', #{value }), '%')
    </select>

图片说明

输入%,传进去的也是一个%,但是查询出来了所有数据,网上查的对传入的百分号加上[]就可以了,试了一下确实可以.我是在java代码里判段的,感觉我这个方法还是不好,如果遇到其他特殊字符还是不行,下面是我代码,大神们还有其他方法吗

  if(newContent.equals("%")){
            String newContent1 = "[%]";
            System.out.println(newContent1);
            return sdService.getVagueQuery(newContent1, page, limit);
        }

http://blog.csdn.net/hbtj_1216/article/details/51763173

编写一个方法 用来把前台穿过来的参数的特殊字符 替换成 想要的格式