${key}有值,

${key,jdbcType=VARCHAR}没有值

总结:${}使用时不要指定jdbcType等属性,指定这些反而取不到值,这也是跟#{}的一个区别。以上只是开发中遇到的情况,具体什么原因导致,可调试一下mybatis源码查看原因。

另一个问题:当where col1 link '#{key}'时会报异常:Parameter index out of range (2 > number of parameters, which is 1).重点是那对单引号,这是因为mybatis预编译时会把#{}编译成?,所以这段sql最后被编译成了where col1 link '?',当set参数的时候会把'?'当成一个sql条件值去处理,而不会把它当成一个占位符,所以找不到匹配的参数占位符就导致了异常。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-06
  • 2021-11-23
  • 2021-11-03
  • 2021-10-23
  • 2021-10-21
  • 2021-05-29
猜你喜欢
  • 2021-05-28
  • 2021-05-01
  • 2022-12-23
  • 2022-12-23
  • 2021-11-20
  • 2022-02-08
  • 2022-12-23
相关资源
相似解决方案