mybatis中不能出现小于号
程序员文章站
2022-05-10 21:26:08
...
今天写了一段语句,目的就是取得当前时间的秒数与表中的time做减法,然后取得一段时间内的数据,语句如下:
SELECT a.* from arena_report a,(SELECT TIMESTAMPDIFF(SECOND,'1970-1-1 8:0:0',NOW()) as currTime) b WHERE (a.roleId1=#{roleId} or a.roleId2=#{roleId}) AND b.currTime-a.time<604800 ORDER BY a.time desc LIMIT 20;
这段语句在数据库中执行,是很正常的通过了 但是放在mybatis中,死就是通不过,加载的时候就会报出一段错误,“”The content of elements must consist of well-formed character data or markup“”, 意思就是xml的格式有问题,找了很久,都没有发现有什么问题,最后还是看到有网友说,是因为mybatis不支持“<”号,最后修改了一下 ,发现果然是的,不得不说,真变态啊 坑!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
修改后的语句为:
SELECT a.* from arena_report a,(SELECT TIMESTAMPDIFF(SECOND,'1970-1-1 8:0:0',NOW()) as currTime) b
WHERE (a.roleId1=#{roleId} or a.roleId2=#{roleId}) AND 604800>b.currTime-a.time ORDER BY a.time desc LIMIT 20;
更新更新:
感谢各位大大的指正 ,问题不是mybatis不支持“<”,而是xml不支持这个符号,这里我是误读了,也想当然了 ,可以看评论中各位的解释