刘寨
精灵王
精灵王
  • UID136
  • 粉丝3
  • 关注2
  • 发帖数31
  • 社区居民
  • 忠实会员
阅读:4896回复:0

核格平台mybatis ${参数名}值存在特殊字符处理

楼主#
更多 发布于:2019-07-03 15:16
        在实际项目开发中,很多时候在sqlMap中会通过${}获取动态获取前台参数信息,从而达到动态sql的目的。但是当参数信息保护如$这些特殊字符的时候,就会出现下面这种情况。

图片:TIM图片20190703151045.png




图片:TIM图片20190703151136.png


    应为参数存在特殊字符$,通过${]获取值时会被mybatis两次解析,导致like结果为空,如下图所示。

图片:TIM图片20190703151143.png





解决方案:
  在项目中,用 :=的形式代替${}的形式可以防止特殊字符。对应like写法为 select * from table like :%参数名% 。

图片:TIM图片20190703151513.png




注意:${}会存在sql注入问题,在项目中谨慎使用,:=的形式不存在sql注入问题

游客

返回顶部