当前位置:   article > 正文

【记录】Cause: com.kingbase8.util.KSQLException: ERROR: could not determine data t

com.kingbase8.util.ksqlexception: error: could not determine data type of pa

项目场景:

SQL异常


问题描述

Mybatis模糊查询无法确定参数$1的数据类型: ERROR: could not determine data type of parameter $1

  <if test="params.xxx != null and params.xxx != ''">
     AND AA.PROBLEM_CODE LIKE CONCAT('%', #{params.xxx}, '%')
  </if>
  • 1
  • 2
  • 3

原因分析:

补充:对于mysql 的 like 而言,一般都要用 like concat() 组合,可以防止sql注入。

但是使用pgsql时添加了参数stringtype=unspecified,就会报无法确定参数类型的错。


解决方案:

 like '%${params.xxx}%'
  • 1

出现的问题:'%${xx}%'的写法无法防止sql注入,不是最佳解决办法

最佳方案

AND AA.PROBLEM_CODE like  '%'||#{params.xxx}||'%'
  • 1

或者使用TEXT强制转换数据类型为字符串

 AND AA.PROBLEM_CODE LIKE CONCAT('%', #{params.xxx}::text, '%')
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/972457
推荐阅读
相关标签
  

闽ICP备14008679号