mybatis 注释大坑,导致参数越界
·
背景
今天单测的时候发现我有个sql总是报越界错误,但是sql再三检查分明没有问题。

最后发现是上面注释掉的sql的问题!!!
mybatis并不会忽略xml中注释掉的代码,它会被读取到要解析的boundSql变量中。

这也直接导致在解析的时候,把注释掉的代码中的占位符也给读取了出来,参数数量从4个变成了8个

但是在生成执行sql的时候又会忽略注释代码,也就是说如果注释sql里存在占位符的话,会使得输入的参数数量大于执行sql需要的参数数量,最终报错
有兴趣的同学可以到MybatisDefaultParameterHandler的setParameters方法中看一看,代码还是写的比较精美的~
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)