Mybatis模糊查询无法确定参数$1的数据类型: ERROR: could not determine data type of parameter $1
Mybatis模糊查询无法确定参数$1的数据类型: 报错ERROR: could not determine data type of parameter $1
修改前:
SELECT count(0) FROM "bank_21" WHERE my_name LIKE CONCAT('%', ?, '%')
修改后:
SELECT count(0) FROM "bank_21" WHERE my_name like '%${myName}%'
补充:对于mysql 的 like 而言,一般都要用 like concat() 组合,可以防止sql注入。
但是使用pgsql时添加了参数stringtype=unspecified,就会报无法确定参数类型的错。
出现的问题:'%${xx}%'的写法无法防止sql注入,不是最佳解决办法
最佳解决办法: my_name like '%'||#{myName}||'%'
或使用TEXT强制转换数据类型为字符串
my_name like concat('%',#{myName}::text,'%')
参考:
https://blog.csdn.net/NMZLduiduidui/article/details/111522289
https://blog.csdn.net/weixin_55469859/article/details/118737540
https://blog.csdn.net/zhenwei1994/article/details/81876278