前言

在使用mybatis框架进行开发时,编写sql少不了<=,>=,>,<,<>等比较符号,但是直接在mapper文件中,直接使用这些符号是不行的,此时就需要对类似于这种的符号进行转换。

正文

直接符号转义

以下罗列出sql中的比较符合和对应的转义符号:

大于	 >		==>  &gt;
大于等于	 >=		==>  &gt;=
小于	 <	        ==>  &lt;
小于等于	 <=		==>  &lt;=
不等于	 <> !=		==>  &lt;&gt;

原sql:

select * from user where age > 10;

在mapper文件中:

select * from user where age &gt;10

转义符转义

在mybatis等书写sql的xml文件中比较常见,是一种xml语法,它的作用可以忽略xml的转义(在该标签中的语句和字符,原本是什么样子,拼接为sql后还是什么样子的)

原sql:

select * from user where age >= 10;

在mapper文件中:

select * from user where <![CDATA[ age >= 10 ]]>

注意:

1、使用动态SQL时,比如if、foreach、where等标签,一但被<![CDATA[]]>标签包裹,将忽略xml的解析并出错
2、<![CDATA[]]>标签中不可以嵌套<![CDATA[]]>
3、<![CDATA[]]>尽量缩小范围,以免出错