欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mybatis中不能出现小于号

程序员文章站 2022-05-10 21:29:14
...

    今天写了一段语句,目的就是取得当前时间的秒数与表中的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不支持这个符号,这里我是误读了,也想当然了  ,可以看评论中各位的解释