由于在Mybatis框架的xml中,我们常用的大于(>)小于(<),大于等于(>=)小于等于(<=)解析的时候会经常出问题,导致编译报错,所以就需要对其进行转译才能通过。
以下是我整理出来记录在这里方便以后使用,也希望能帮助用到的小伙伴哦~~~
左边就是原来的符号,右边就是在mybatis中代替的符号
原符号 | Mybatis中替换的符号 | 备注 | 例子 |
> | > | A > B | |
>= | >= 或者 <![CDATA[>= ]]> | A >= B 或者 A <![CDATA[>= ]]> B | |
< | < | A < B | |
<= | <= 或者 <![CDATA[<= ]]> | A <= B 或者 A <![CDATA[<= ]]> B | |
!= | <![CDATA[ <> ]]> 或者 <![CDATA[!= ]]> | A <![CDATA[ <> ]]> B 或者 A <![CDATA[!= ]]> B | |
"" | " | 双引号 | |
'' | ' | 单引号 | |
& | & | A & B |
实例说明
SELECT
*
FROM
uoa_daily
WHERE
<if test="daily.createUser != null and daily.createUser != ''">
create_user != #{daily.createUser}
</if>
<if test="daily.departmentId != null and daily.departmentId != ''">
and department_id = #{daily.departmentId}
</if>
<if test="daily.type != null and daily.type != ''">
and `type` = #{daily.type}
</if>
AND id IN (
SELECT
daily_id
FROM
uoa_daily_read_log
WHERE
create_user = #{daily.createUser}
)
AND
DATE_SUB(CURDATE(), INTERVAL 30 DAY) <![CDATA[ <= ]]> DATE(create_time)
ORDER BY
create_time DESC
LIMIT #{current}, #{size}
完结!