`
墙头上一根草
  • 浏览: 154517 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mybatis中不能出现小于号

阅读更多

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

0
5
分享到:
评论
7 楼 墙头上一根草 2016-11-01  
最近项目在上线  所以好久没上来了  这个确实是我研究不够透彻 造成了误解  多谢各位的指正哈 至于删不删除  就先不删除了吧  有可能和我遇到同样问题的  看到加的评论 就解决问题了
6 楼 Tyrion 2016-08-19  
...不是说不支持“<”
而是因为你用的是xml文件配置,内容里面有<符号XML解析器会把该字符解释为新元素的开始。
这种情况要么用&lt;转义,要么用CDATA告诉解析器进行解析的是文本数据,CDATA部分的所有内容都会被解析器忽略。
5 楼 add2ws 2016-08-19  
小于和大于号和xml里的尖括号冲突,应该用&lt;和&gt;代替。这类问题确实会坑不少新手
4 楼 hellotieye 2016-08-19  
楼主 mybatis 是可以使用小于号的 再好好学一下 没关系的
3 楼 hellotieye 2016-08-19  
somefuture 写道
楼主你确定不删除这篇文章吗

为什么 要删除
2 楼 somefuture 2016-08-19  
楼主你确定不删除这篇文章吗
1 楼 cs6641468 2016-08-19  
LZ建议你把基础打牢,我当年在研究xml规范(其中一部分就是关于特殊字符的处理)的时候,还不知道mybatis是啥玩意呢。

相关推荐

    MyBatis SQL xml处理小于号与大于号正确的格式

    这样的问题在iBatiS中或者自定义的xml处理sql的程序中经常需要我们来处理。其实很简单,我们只需作如下替换即可避免上述的错误: 原符号  &lt;  &lt;=  &gt;  &gt;=  &  ‘  “ 替换符号 &lt; &lt;= &gt; &gt;= & ' ...

    简述mybatis大于小于的转义

    总的来说,理解并正确使用这些转义字符对于避免MyBatis中出现的XML解析错误和SQL执行异常至关重要。同时,这也是保障代码健壮性和安全性的重要步骤。记住,当在XML文件中遇到可能会被解析器误解的特殊字符时,一定要...

    MyBatis 需要注意的地方junit注解

    3.xml中的小于号:$lt;大于号¥&gt; 4.取变量时,如果dao层接口使用的是@param("别名")注解,则根据别名取值 5.mapper.xml中$和#取值的区别 4.mybatis的xml中如何设置返回值 resultType返回的数据类型 5.$和#区别 1....

    Mybatis在Mapper.xml文件中的转义字符处理方式.pdf

    Mybatis是一个流行的Java持久层框架,它通过XML或注解的方式,将对象与数据库中的表进行映射,实现数据库操作的自动化。在Mybatis框架中,Mapper.xml文件是定义SQL映射的关键组件,它允许开发者编写SQL语句并执行...

    MyBatis-Plus代码

    2. **条件构造器**:MyBatis-Plus的QueryWrapper和UpdateWrapper类是条件构造器的代表,它们允许开发者方便地构建复杂的查询条件,支持单表操作的各种逻辑表达式,如等于、不等于、大于、小于等,并且支持多条件组合...

    Mybatis_day2.pdf

    XML文件中,大于号(&gt;)、小于号(&lt;)和其他特殊字符需要进行转义,如用`&gt;`代替`&gt;`,`代替`。 6. MyBatis中的别名: 为了简化开发,MyBatis允许为实体类声明别名。这使得在映射文件中可以直接使用别名,而不是...

    SpringBoot集成MyBatis-Plus例子

    除了基本的CRUD操作,MyBatis-Plus还提供了丰富的查询条件构造器,如`eq`(等于)、`ne`(不等于)、`gt`(大于)、`lt`(小于)等,以及分页、排序、联表查询等功能。这些功能使得开发者可以灵活地构造复杂的查询...

    mybatis xml中特殊字符处理及特殊符号

    1. `(小于号):在XML中应写作 `&lt;` 2. `&gt;` (大于号):在XML中应写作 `&gt;` 3. `&` (和号):在XML中应写作 `&amp;` 4. `"` (双引号):在XML中应写作 `&quot;` 5. `'` (单引号):在XML中应写作 `&apos;` 当这些...

    Mybatis特殊字符处理的详解

    前言: Mybatis特殊字符处理,Mybatis中xml文件特殊字符的处理,这里提供了解决办法及实例...但是,Mybatis中xml 文件中,查询是不能使用小于号(&lt;)的,因为这属于开始标签,是特殊字符  二、解决方案  在查询中

    优雅高效的MyBatis.docx

    `velocity` 是一个模板引擎,用于代码生成,而 `mybatis-plus` 是核心库,版本号为 `2.0.1`。确保使用与项目兼容的最新版本。 接下来,我们需要在 Spring 配置文件中替换原有的 `sqlSessionFactory`。通常,这会是 ...

    专高2_练习手册_高性能架构_第16单元1

    5. Mybatis特殊字符:在Mybatis中,小于号`可以用`&lt;`或`&lt;![CDATA[&lt;]]&gt;`来表示,以防止XML解析时出现问题。 6. Mybatis缓存:Mybatis的一级缓存默认开启,它位于SqlSession层面,存储了同一SqlSession内的查询...

    mybatis报错元素内容必须由格式正确的字符数据或标记组成异常的解决办法

    这个错误通常是由于在XML映射文件中使用了XML解析器识别的特殊字符,例如小于号 `和大于号 `&gt;`,导致MyBatis在解析时将它们误认为是XML标签。下面我们将详细讨论这个问题的原因、解决方法以及如何避免此类错误。 ##...

    Layui+Jsp+SSM+MybatisPlus+MySql.rar

    适配手机模式: 当浏览器宽度小于1100时自动兼容 本人使用的是Windows10开发系统 Eclipse 2020-03 开发工具 Tomcat 8.5开发服务 JDK使用的是jdk1.8.0_131 Mysql使用mysql-8.0.20-winx64 前后端传输使用AES加密解密 ...

    SpringBoot+MybatisPlus+Thymeleaf+Layui+Html+MySql8.0

    本框架简单上手,注释明了,合适新手 ...适配手机模式: 可视宽度小于1100时自动兼容 加密: AES + Base64 等 系统访问路径:http://localhost:8080/human-resources-system 账号:admin 密码:123456

    springmvc4配置防止XSS攻击的方法

    核心清理函数是cleanXSS(),它使用正则表达式将参数值中的常见XSS攻击字符串进行转义,比如将小于号(&lt;)和大于号(&gt;)分别转义为&lt;和&gt;。 为了实现对所有请求的过滤,需要在Spring MVC的配置文件中配置自定义的...

    SpringBoot+MybatisPlus+Thymeleaf+Layui+Html+MySql5.7

    本框架简单上手,注释明了,合适新手 ...适配手机模式: 可视宽度小于1100时自动兼容 加密: AES + Base64 等 系统访问路径:http://localhost:8080/human-resources-system 账号:admin 密码:123456

    MyBatisPlus条件构造器带条件删除delete使用示例代码

    MyBatisPlus的条件构造器支持多种操作符,如`eq`(等于)、`ne`(不等于)、`gt`(大于)、`lt`(小于)等,可以根据实际需求灵活组合使用。除了单个字段的条件,还可以进行多条件组合,如`and`和`or`操作,甚至可以...

    Layui+Jsp+SpringBoot+MybatisPlus+MySql.rar

    Mybatis-Plus版本3.2.0 日志使用SpringBoot相关依赖log4j 1.3.8.RELEASE 开发常用代码工具hutool-all 5.7.7 导入数据有ImportExcelUtil工具类,兼容2003/2007 其他: 登录账号/密码:admin/12356 目前系统模块有:...

Global site tag (gtag.js) - Google Analytics