Mybatis - xml文件标签中能不能写注释? ? ?

1.错误场景. ( /* */ 注释 )

IDEA中      ==>>       标签内       ==>>      Ctrl + Alt + / 注释.

<select xxxx >
      select id,name 
      from user  
      /*limit #{startIndex,jdbcType=INTEGER},#{numPerPage,jdbcType=INTEGER}*/
</select>

2.异常信息: ( 注释也会被执行 )

执行打印出来的SQL语句如下: select id,name from user /* limit ?,? */

Caused by: java.sql.SQLException: Parameter index out of range (4 > number of parameters, which is 3).
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
	at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3327)
	at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3312)
	at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3351)
	at com.mysql.jdbc.PreparedStatement.setNull(PreparedStatement.java:3390) 

3.异常分析. ( 使用/* */注释 )

①SQL语句中会拼接上注释的内容.
      select * from user /* 注释内容 */

②注释中有#{},mybatis仍旧会把#{ }算成一个带注入的参数.

4.解决办法. ( 可以写注释. )

规范写法:

<!-- 注释内容 -->

故: xml文件中的注释不能是 /**/,要不然就会报出上面的错误信息,只能以<!开头,和 > 结尾

发布了107 篇原创文章 · 获赞 173 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_42986107/article/details/100544120