通常写SQL我们都会在Navicat里面写好条件测试没问题之后才会把SQL放到mapper里面,有次我在写Oracle的分页的时候因为用到了<=符号,在Navicat测试的时候是没问题的,但是放到mapper里面就会报(tag name expected)这个错误提示,这种情况在xml处理SQL的程序中需要特殊处理。
解决方法很简单,我们只需要将个别特殊符号使用转义字符就好了:
<
<=
>
>=
&
‘
”
<
<=
>
>=
&
'
"
如果是在if标签里面的话就可以直接使用=、>符号
t.userId = #{userId}
案列:
将 >= 改为>=
SELECT
*
FROM
( SELECT ROWNUM AS rowno, t.ID FROM t_user t WHERE ROWNUM <= 2000) t_user
WHERE
t_user.rowno >= 1;(错误写法)
SELECT
*
FROM
( SELECT ROWNUM AS rowno, t.ID FROM t_user t WHERE ROWNUM <= 2000) t_user
WHERE
t_user.rowno >=1;(正确写法)
上面就是如何解决MyBatis的mapper中SQL小于号或大于号报错的方法,我提供案列的是Oracle的分页查询SQL,如果大家分不清MySQL和Oracle的分页的话可以参考这篇文章:https://www.prettywordpress.com/back-end/development-faq/mysql-oracle-paging.html 。如果你喜欢这篇文章的话可以多多关注本网站,吃饭用大碗的程序猿会每天定时更新IT技术分享噢~