`
足至迹留
  • 浏览: 486202 次
  • 性别: Icon_minigender_1
  • 来自: OnePiece
社区版块
存档分类
最新评论

备忘: $与#, <![cdata[ ]]>

阅读更多
1. $ 与 #
在ibatis/MyBatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行预编译,进行类型匹配,而$不进行数据类型匹配,直接当做字符串拼接,所以要注意sql注入风险。

$ 的作用实际上是字符串拼接,
select * from $tableName$
等效于
StringBuffer sb = new StringBuffer(256);
sb.append("select * from ").append(tableName);
sb.toString();

#用于变量替换
select * from table where id = #id#
等效于
prepareStement = stmt.createPrepareStement("select * from table where id = ?")
prepareStement.setString(1,'abc');

对于变量部分, 应当使用#, 这样可以有效的防止sql注入, 未来,# 都是用到了prepareStement,这样对效率也有一定的提升;
$只是简单的字符拼接而已,对于非变量部分, 那只能使用$, 实际上, 在很多场合,$也是有很多实际意义的
例如:
select * from $tableName$ 对于不同的表执行统一的查询。

还可以参考: http://developer.51cto.com/art/200907/138063.htm


2. <![cdata[ ]]>
实际上这是xml的用法,因为mybatis中经常见到,所以也放在这里说明。
在xml中'<'和'&'是特殊字符,需要特殊处理,包含在<![cdata[ ]]>中即可。
分享到:
评论

相关推荐

    asp微信开发者回复代码

    [CDATA["&fromusername&"]]&gt;&lt;/ToUserName&gt;" &_ "&lt;FromUserName&gt;&lt;![CDATA["&tousername&"]]&gt;&lt;/FromUserName&gt;" &_ "&lt;CreateTime&gt;"&now&"&lt;/CreateTime&gt;" &_ "&lt;MsgType&gt;news&lt;/MsgType&gt;" &_ "&lt;ArticleCount&gt;3&lt;/...

    省市区表,xml省市区

    自己将数据导入到xml中的,希望有需要的朋友可以自己下载,格式为&lt;!DOCTYPE PCAroot[ &lt;!ELEMENT PCAroot (Province*)&gt; &lt;!ELEMENT Province (City*)&gt; &lt;!ELEMENT City (Area*)&gt; &lt;!ELEMENT Area (#PCDATA)&gt; &lt;!...

    微信时间开发源码

    [CDATA[%s]]&gt;&lt;/ToUserName&gt; &lt;FromUserName&gt;&lt;![CDATA[%s]]&gt;&lt;/FromUserName&gt; &lt;CreateTime&gt;%s&lt;/CreateTime&gt; &lt;MsgType&gt;&lt;![CDATA[%s]]&gt;&lt;/MsgType&gt; &lt;Content&gt;&lt;![CDATA[%s]]&gt;&lt;/Content&gt; &lt;FuncFlag&gt;0&lt;/FuncFlag&gt; &lt;/xml...

    微信开发文档

    [CDATA[toUser]]&gt;&lt;/ToUserName&gt; &lt;FromUserName&gt;&lt;![CDATA[fromUser]]&gt;&lt;/FromUserName&gt; &lt;CreateTime&gt;1348831860&lt;/CreateTime&gt; &lt;MsgType&gt;&lt;![CDATA[text]]&gt;&lt;/MsgType&gt; &lt;Content&gt;&lt;![CDATA[this is a test]]&gt;&lt;/...

    一个简单的xml文件

    ATTLIST 电话 类别 CDATA "移动电话"&gt; ]&gt; &lt;联系人列表&gt; &lt;说明&gt;&content;&lt;/说明&gt; &lt;联系人&gt; &lt;姓名&gt;刘保文&lt;/姓名&gt; &lt;ID&gt;201003101115&lt;/ID&gt; &lt;公司&gt;腾飞汇通有限公司&lt;/公司&gt; &lt;电话 类别="移动电话"&gt;18993380967&lt;/...

    JAVA对象转换成XML(CDATA)

    XML 元素中,"&lt;" 和 "&" 是非法的。"&lt;" 会产生错误,因为解析器会把该字符解释为新元素的开始。"&" 也会产生错误,因为解析器会把该...[CDATA[文本内容]]&gt;CDATA的文本内容中不能出现字符串“]]&gt;”,另外,CDATA不能嵌套。

    JQuery选择器

    JQuery选择器 几个小练习 ... &lt;select&gt;&lt;option&gt;Option&lt;/option&gt;&lt;/select&gt;&lt;br/&gt; &lt;textarea rows="5" cols="20"&gt;&lt;/textarea&gt;&lt;br/&gt; &lt;button&gt;Button&lt;/button&gt;&lt;br/&gt; &lt;/form&gt; &lt;div&gt;&lt;/div&gt; &lt;/body&gt; &lt;/html&gt;

    上传xml文档

    &lt;preconditions&gt;&lt;![CDATA[1.使用udp_bi用户在PLSQL正常登陆UAT数据库&lt;br&gt; (UAT数据库IP: 10.0.13.178)&lt;br&gt; 2.数据库脚本已下载至本地环境]]&gt;&lt;/preconditions&gt;&lt;importance&gt;&lt;![CDATA[2]]&gt;&lt;/importance&gt;&lt;steps&gt; &lt;step&gt;

    Mobile Atlas Creator.exe

    [CDATA[http://t{$serverpart}.tianditu.cn/DataServer?T=cia_w&X={$x}&Y={$y}&L={$z}]]&gt;&lt;/url&gt; &lt;serverParts&gt;0 1 2 3 5 6 7&lt;/serverParts&gt; &lt;backgroundColor&gt;#00000000&lt;/backgroundColor&gt; &lt;/customMapSource&gt; &lt;/...

    xml入门教程/xml入门教程

    如:&lt;?xml version="1.0" encoding="gb2312" standalone="yes"?&gt; 文档类型声明 规定元素的结构和属性列表的取值 如:&lt;!DOCTYPE studinfo SYSTEM "studinfo.dtd"&gt; 2)元素 空元素 &lt;空元素标签名 属性=...

    XML入门与实例

    注释的语法&lt;br&gt;· 四.CDATA的语法&lt;br&gt;· 五.Namespaces的语法&lt;br&gt;· 六.entity的语法&lt;br&gt;· 七.DTD的语法&lt;br&gt;· 第五章:XML实例解释&lt;br&gt;· 一.定义新标识 &lt;br&gt;· 二.建立XML文档&lt;br&gt;· 三.建立相应的HTML文件 &lt;br&gt;·...

    C#读取XML的CDATA节点内容实例详解

    &lt;srvver&gt;1.0&lt;/srvver&gt; &lt;srvcode&gt;000&lt;/srvcode&gt; &lt;payload&gt; &lt;param type=XML key=data&gt; &lt;![CDATA[ &lt;Response&gt; &lt;Execution&gt; &lt;Status code=0 sql_code=0 description=执行成功!/&gt; &lt;/Execution&gt; &lt;ResponseContent...

    Mybatis 中的&amp;lt;![CDATA[ ]]&amp;gt;浅析

    本文给大家解析使用&lt;![CDATA[ ]]&gt;解决xml文件不被转义的问题, 对mybatis 中的&lt;![CDATA[ ]]&gt;相关知识感兴趣的朋友一起看看吧

    eclipse-testng 离线包下载

    &lt;xsl:output name="xml" method="xml" indent="yes"/&gt; &lt;xsl:output name="html" method="html" indent="yes" omit-xml- declaration="yes"/&gt; &lt;xsl:output name="xhtml" method="xhtml" indent="yes" omit-xml-...

    [示例][PHP]HTML5解析和序列化的PHP库.zip

    [CDATA[Because we can.]]&gt; &copy; &lt;/body&gt;&lt;/html&gt; HERE; $html5 = new HTML5(); $dom = $html5-&gt;loadHTML($html); print "Converting to HTML 5\n"; $html5-&gt;save($dom, fopen("php://stdin", 'w'));

    奥运官方网flash幻灯

    &lt;script src="/images/beijing2008_flashobj.js" type="text/javascript"&gt;&lt;/script&gt; &lt;div class="mainContent"&gt; &lt;div class="focusFlash"&gt; &lt;div id="sasFlashFocus27"&gt;&lt;/div&gt; &lt;SCRIPT type=text/javascript&gt; //&lt;!...

    微信接口ASP版

    [CDATA[gh_33bb5907f91e]]&gt;&lt;/ToUserName&gt; &lt;FromUserName&gt;&lt;![CDATA[ojLh3jkYtiszyEY-_sM_8yrNxSc4]]&gt;&lt;/FromUserName&gt; &lt;CreateTime&gt;1363231643&lt;/CreateTime&gt; &lt;MsgType&gt;&lt;![CDATA[text]]&gt;&lt;/MsgType&gt; &lt;Content&gt;&lt;...

    异构系统xml交互程序

    [CDATA[10]]&gt;&lt;/LoginTimeOut&gt; &lt;QueryTimeOut&gt;&lt;![CDATA[3600]]&gt;&lt;/QueryTimeOut&gt; 原始set.xml数据库连接节点缺少以上两个节点请添加,LoginTimeOut为数据库连接超时时间,单位秒,QueryTimeOut为SQL语句执行超时时间...

    快捷输入代码段mysnippet2

    &lt;Author&gt;Microsoft Corporation&lt;/Author&gt; &lt;SnippetTypes&gt; &lt;SnippetType&gt;Expansion&lt;/SnippetType&gt; &lt;/SnippetTypes&gt; &lt;/Header&gt; &lt;Snippet&gt; &lt;Declarations&gt; &lt;Literal&gt; &lt;ID&gt;type&lt;/ID&gt; &lt;ToolTip&gt;属性类型...

    XML轻松学习手册(chm)

    注释的语法&lt;br&gt;· 四.CDATA的语法&lt;br&gt;· 五.Namespaces的语法&lt;br&gt;· 六.entity的语法&lt;br&gt;· 七.DTD的语法&lt;br&gt;· 第五章:XML实例解释&lt;br&gt;· 一.定义新标识 &lt;br&gt;· 二.建立XML文档&lt;br&gt;· 三.建立相应的HTML文件 &lt;br&gt;·...

Global site tag (gtag.js) - Google Analytics