MyBatis拦截器动态修改SQL语句及参数值(场景:查询中字段值中特殊字符自动转义)

解决问题的场景:执行人名字中含有_ 的,在查询中用_或含有_ 的字段,列表中查不到信息



解决问题的思路:获取从MyBatis的mapper Xml文件中,找到原始的Sql语句(条件判断处理已好的SQL),在含有Like的查询字段值里若包含特殊字符,则转义 ,并在查询条件后面添加 " ESCAPE '/'。处理后的Sql语句类似:select * from from  syslog where t like '%\_条件值%' " ESCAPE '/'  and  OPER_REMARK  like '%\_条件值%' " ESCAPE '/'


关键点:要获取原始SQL ,根据查询条件动态地修改SQL及参数值


代码部分:


拦截器基础:

配置:


           
           
           
           
       

sqlMapper配置