【转】通过xml处理sql语句时对小于号与大于号的处理转换

当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序错误。

这样的问题在iBatiS中或者自定义的xml处理sql的程序中经常需要我们来处理。其实很简单,我们只需作如下替换即可避免上述的错误:

原符号   <    <=    >    >=     &      ‘       "
替换符号 &lt; &lt;= &gt; &gt;= &amp; &apos; &quot;

错误的xml格式:

<?xml version="1.0" encoding="GBK"?> 

<queryForm token="32sdfj-349sfdnfs32-fsdf348imfg323-df34" tableName="HSY_T_CUSTOMER" pageSize="20" pageNo="1" orderColumn="" orderType="">  

<sqlCondition> AND START_DATE >= to_date(‘2013-01-01‘,‘yyyy-MM-dd‘) AND START_DATE <= to_date(‘2013-01-30‘,‘yyyy-MM-dd‘) </sqlCondition>  

</queryForm>  

在altova XMLSpy工具中会报错,xml不符合格式要求。

正确的xml格式:

<?xml version="1.0" encoding="GBK"?>  

<queryForm token="32sdfj-349sfdnfs32-fsdf348imfg323-df34" tableName="HSY_T_CUSTOMER" pageSize="20" pageNo="1" orderColumn="" orderType="">  

<sqlCondition> AND START_DATE &gt;= to_date(‘2013-01-01‘,‘yyyy-MM-dd‘) AND START_DATE &lt;= to_date(‘2013-01-30‘,‘yyyy-MM-dd‘) </sqlCondition>  

</queryForm>  

在altova XMLSpy工具中验证通过。

原文链接:http://blog.csdn.net/hu_shengyang/article/details/8513655

时间: 2024-08-24 16:31:13

【转】通过xml处理sql语句时对小于号与大于号的处理转换的相关文章

MyBatis 和 ibatis的动态SQL语句配置符号,不兼容大于号、小于号等特殊符号问题 X

TEST 在XML映射SQL的文件中,很多情况下会使用到大于号.小于号等特殊符号,这时候如果不进行控制是无法编译通过的,这时候需要用到<![CDATA[  ]]>符号进行说明,将此类符号不进行解析,其实,这个问题不止在MyBatis上通用,而是它通用于任何XML的文件中使用,比如Hibernate.Wabacus.Spring等等等等配置文件中,只要是XML文件就行,此类问题在以后的工作中,经常使用. 案例代码 <select id="findAllKiaAnalysisByC

java项目中, mybatis的sql XML文件,在写sql语句时,大于号小于号转义

因为这个是xml文件不允许出现类似">"这样的字符 用了转义字符把>和<替换掉,然后就没有问题了. XML转义字符 字段 符号 说明 &lt ; < 小于号 &gt ; > 大于号 &amp ; & 和 &apos ; ' 单引号 &quot ; " 双引号 原文出处 http://blog.csdn.net/qq_28587263/article/details/54138998

PL/SQL Developer中输入SQL语句时如何自动提示字段

在PL/SQL Developer中编写sql语句时,如果无法自动提示字段那是一件痛苦的事情,工作效率又低,在此演示下如何在PL/SQL Developer工具中自动提示字段,让开发者省时又省心,操作步骤如下:tools–>preferences–>user interface–>code assistant–>在右边选中authomatically activated即可,如 PL/SQL Developer中输入SQL语句时如何自动提示字段,布布扣,bubuko.com

SQL面试题:有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列

.请教一个面试中遇到的SQL语句的查询问题 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列. ------------------------------------------ select (case when a>b then a else b end ), (case when b>c then b esle c end) from table_name [sql] view plain copy drop table

C#使用带like的sql语句时防sql注入的方法

本文实例叙述了在拼接sql语句的时候,如果遇到Like的情况该怎么办. 一般采用带like的SQL语句进行简单的拼接字符串时,需要开率遇到sql注入的情况.这确实是个需要注意的问题. 这里结合一些查阅的资料做了初步的整理. 如这样一个sql语句: select * from game where gamename like '%张三%' 用c#表示的话: string keywords = "张三"; StringBuilder strSql=new StringBuilder();

MyBatis SQL xml处理小于号与大于号

当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序错误. 这样的问题在iBatiS中或者自定义的xml处理sql的程序中经常需要我们来处理.其实很简单,我们只需作如下替换即可避免上述的错误: 原符号   <    <=    >    >=     &      '       " 替换符号 < <= &

用一条SQL语句查出每门课都大于80分的学生的姓名

用一条sql语句查询出所有课程都大于80分的学生名单: name cource score 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90 1 SET FOREIGN_KEY_CHECKS=0; 2 3 -- ---------------------------- 4 -- Table structure for grade 5 -- ---------------------------- 6 DROP TABL

mybatis中写sql语句时需要转义的字符

mybatis配置文件,sql语句中含有转义字符: 错误语句: select * from table_base where flag_topic  & #{topic_num} 错误信息: Caused by: org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 54; The entity name must immediately follow the '&' in the entity reference. 正确语

Python连接MySQL数据库执行sql语句时的参数问题

由于工作需要,今天写了一个Python小脚本,其中需要连接MySQL数据库,在执行sql命令时需要传递参数,结果出问题了.在网上查了一下,发现有以下几种方式传递参数: 一.直接把sql查询语句完整写入字符串 try: connection = MySQLdb.connect(user="secsel",passwd="[email protected]",host="192.168.138.55",db="anbench")