首页 > 日志 > 随笔 > 用MyBatis+PageHelper打注释时小心点

用MyBatis+PageHelper打注释时小心点

硬是要在XML文件里要打注释就用XML自带的注释,最好是这种:

<![CDATA[
注释内容
]]>

在Mybatis的具体实现里,CDATA内部所有东西都会被SQL解析器忽略。

如果不涉及到特殊符号、嵌套注释的话,就普通的 <!--注释内容--> 也行

 

刚遇到用双减号(-- 注释内容)这种注释的代码报错,愣是没看懂到底出了什么问题。

错误内容差不多是这种:

The column index is out of range: 3, number of columns: 2.

 

我还在那SQL里找了半天,对照好几遍看看到底是什么参数少了。

盯着Git提交记录往前翻,结果发现问题代码于几个版本之前有一个微乎其微的变动,就是单纯的加了一行注释。

最终定位到的问题是,在某个判定之下,该注释会成为一个尾行的注释。

用MyBatis的应该都有接触到,Java里边有个分页插件叫PageHelper,一般都和MyBatis配套使用的,在分页时为了查询总行数,它会在XML中原SQL的外层包一圈,这种情况下若是有一个尾行的、SQL原生的注释,就会把 PageHelper 生成的SQL给一起去掉,于是就会出bug了。

这是一个很愚蠢的bug,但是没遇到过的话,那还真是很难得注意……

 

           


CAPTCHAis initialing...
EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00