Batis和MyBatis SQL映射文件编码规范.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
iBatis和MyBatisSQL映射文件编码规范

iBatis和MyBatis SQL映射文件编码规范XML注释注意事项使用!-- --注释,前后至少留出一个半角空格SQL XML映射文件中使用!-- --注释,其中注释内容不要紧挨着注释的起始标签和结束标签。注释内容距离起始标签和结束标签至少留出一个半角空格。!-- 获取学员信息 --selectid=getMemberInforesultClass=java.util.HashMapselect Uid, Memberid, FullName from Member with (nolock) where Memberid = #memberid:CHAR#/select避免注释出现在SQL语句中!-- 获取学员信息 --selectid=getMemberInforesultClass=java.util.HashMapselect Uid, Memberid, FullName!-- 这里不要出现注释 --from Member with (nolock) !-- 这里不要出现注释 --where Memberid = #memberid:CHAR# !-- 这里不要出现注释 --/select防止SQL注入变量引用的两种写法对于ibatis/MyBatis变量引用方式可以使用#和$两种写法,其中#写法会采用预编译方式,将转义交给了数据库,不会出现注入问题;如果采用$写法,则相当于拼接字符串,会出现注入问题。禁止使用 $ 写法,请使用 # 写法或者枚举形式代替。如下以iBatis为例说明$ 写法和 # 写法。$写法,存在SQL注入风险引起SQL注入问题的 $ 写法示例:!-- 0. SQL注入写法:存在安全隐患 --selectid=getByIdCwareresultClass=com.cdeledu.courseware.cwareList.domain.CwareSELECT cw.CwareID, cw.CwID, cw.CwareName, cw.InnerCwareIDFROM dbo.Cware AS cw WITH (NOLOCK)WHERE cw.CwareID = $cwareID$/select#写法,数据库预编译,防止SQL注入不会引起SQL注入问题的 # 写法示例:!-- 1. 预编译写法:防止SQL注入 --selectid=getByIdCwareresultClass=com.cdeledu.courseware.cwareList.domain.CwareSELECT cw.CwareID, cw.CwID, cw.CwareName, cw.InnerCwareIDFROM dbo.Cware AS cw WITH (NOLOCK)WHERE cw.CwareID = #cwareID#/selectLIKE 操作符$写法!-- 0. SQL注入写法:存在安全隐患 --selectid=like0resultClass=com.cdeledu.courseware.cwareList.domain.CwareparameterClass=java.util.MapSELECT cw.CwareID, cw.CwID, cw.CwareName, cw.InnerCwareIDFROM dbo.Cware AS cw WITH (NOLOCK)WHERE cw.CwareName like $cwareName$/select#写法!-- 1. 预编译写法:使用字符串连接符+号 --selectid=like1resultClass=com.cdeledu.courseware.cwareList.domain.CwareparameterClass=java.util.MapSELECT cw.CwareID, cw.CwID, cw.CwareName, cw.InnerCwareIDFROM dbo.Cware AS cw WITH (NOLOCK)WHERE cw.CwareName like % + #cwareName:VARCHAR# + %/select!-- 2. 预编译写法:在JAVA程序中预先拼接前后的%符号 --selectid=like2resultClass=com.cdeledu.courseware.cwareList.domain.CwareparameterClass=java.util.MapSELECT cw.CwareID, cw.CwID, cw.CwareName, cw.InnerCwareIDFROM dbo.Cware AS cw WITH (NOLOCK)WHERE cw.CwareName like #cwareName:VARC

您可能关注的文档

文档评论(0)

ranfand + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档