为了账号安全,请及时绑定邮箱和手机立即绑定

mybatis中﹤![CDATA[ ]]> 的使用

mybatis中﹤![CDATA[ ]]> 的使用

潇湘沐 2019-03-29 19:19:51
<sql id="MysqlDialectSuffix"><!--  WARNING - @mbggenerated  This element is automatically generated by MyBatis Generator, do not modify.  This element was generated on Thu Oct 10 09:46:29 CST 2013.--><if test="page != null">  <![CDATA[ limit #{page.begin}, #{page.length} ) as temp_page_table) ]]>  <if test="orderByClause != null">    order by ${orderByClause}  </if></if></sql>上述代码是利用mybatis的generator自动生成的代码,为什么要加﹤![CDATA[ ]]>呢?感觉完全没有必要的啊,里面的SQL语句并没有破坏xml文档结构,或引起sql错误的啊?为什么呢?=============================================================补充说明,我知道它的用法,我只是不明白sql的分页limit #{page.begin}, #{page.length} ) as temp_page_table) 这个语句,为什么要加<![CDATA[]]>呢?
查看完整描述

4 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

你这段sql是没有,它应该是统一加的CDATA,防止你的sql里面出现诸如"<"、"&"这种XML非法字符

我的意思是他不管三七二十一都会对SQL加上这段,防止出现XML非法字符。就算有的SQL没有,他也会加,反正加了也不会错。宁可错杀,不能放过。



查看完整回答
反对 回复 2019-04-23
?
慕标5832272

TA贡献1966条经验 获得超4个赞

理论上这个limit是没有必要加上这个,我用的limit分页是从来不用加上的,不过具体的你还是测试下,去除掉之后会不会报错,防止"<"这类符号在mybatis中不认


查看完整回答
反对 回复 2019-04-23
?
炎炎设计

TA贡献1808条经验 获得超4个赞

W3C XML CDATA
CDATA与MyBatis并没有关系。

术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。CDATA 部分中的所有内容都会被解析器忽略。
至于你的XML中即使没有错误但是也增加了CDATA,楼主也说了是通过generator自动生成的代码,既然是自动生成的那工具自然没有人那么聪明,只用最为通用的方式进行处理,这也无可后非。


查看完整回答
反对 回复 2019-04-23
  • 4 回答
  • 0 关注
  • 1599 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号