注释了直接在下面写了新的sql,注释的时候一般我都习惯性的选中之后Ctrl+/利用编辑器自带的自动注释功能,这个时候编辑器是分两种情况的:情况一是你之前老的sql没有类似<where>这样带特殊尖括号的语句,这个时候如果用Ctrl+/的话编辑器会用'--'也就是sql语句的注释去注释你之前的老sql,注释完之后编辑器并不会报错如果比较幸运你之前的语句里没有参数的话执行也是没有问题的,但是,注意这个但是,如果你之前的sql语句带#{xxxx}或者${xxx}这样的参数,形如下面这样:
-- #{month,jdbcType=VARCHAR}
那么恭喜你,这个时候执行的话就会报很诡异的异常,类似于下面这样:
org.springframework.dao.TransientDataAccessResourceException:
### Error querying database. Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
这个时候你可能会和我一样丈二和尚摸不着头脑,特别是如果之前么有遇见过这个问题的话,很有可能会在这里搞很久;情况二是你的老sql有<where>这样的带尖括号的语句,这个时候你用Ctrl+/的话,会自动是<!-- xxx-->也就是标准的xml注释,这个时候即使你注释的xxx包括外部参数占位,执行的时候也不会报错,形如下面这样也不会有问题:
<!-- #{month,jdbcType=VARCHAR}-->
---------------------
作者:R先森
来源:CSDN
原文:https://blog.csdn.net/beagreatprogrammer/article/details/79262532
版权声明:本文为博主原创文章,转载请附上博文链接!