Mybatis的mapper文件中涉及大于号小于号等特殊符号使用

什么是 MyBatis?

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

关于mybatis的框架使用,现在是越来越火了,给大家带来极大的便利,让更多的程序员减少生成轮子的工作量。

Mybatis有哪些注意事项

但是,由于某些特殊的情况,大家可能没有深入框架去理解,导致大家大家在使用mybatis的时候也给遇到一些问题。比如说,mybatis中的mapper文件是采用xml格式来作为配置文件的,大部分的SQL都会写在XXXmapper.xml文件中,不可避免地就会遇到xml文件地限制问题,比如特殊字符的转义。在SQL中,我们对于比较的字符(>,<,<=,>=),就需要我们特殊处理了,发否则会在执行SQL的时候,报错。

举个栗子:

SELECT * FROM posts WHERE 1 = 1 AND update_time  <= #{newTime} AND creat_time >= #{newTime}

在mybatis的mapper文件中,应该调整为:

SELECT * FROM posts WHERE 1 = 1 AND update_time  &lt;= #{newTime} AND creat_time &gt;= #{newTime}

上述SQL语句就能正常执行了。

当然,还有一种比较特殊的方法,也是xml所支持的标签方式,即<![CDATA[   ]]>标识。采用这种方式的话,则兼容所有比较符号。 

XML只有5个转义符: &lt; &gt;&amp; &quot; &apos;

上面对应的字符分别是<,>,&,",';的转义字符

绘制成表格可能更好理解。

                     &lt;                       

                     <

                     小于号                             

                     &gt;

                     >                

                     大于号

                     &amp;

                     &

                     和

                     &apos;

                     ’

                     单引号

                     &quot;

                     "

                     双引号

 以上就是xml文件中的转义符,如果遇到类似问题,可以根据上述的表格,快捷的替换掉SQL中的比较。

学习帮助

在工作和学习的过程中,不可避免地会遇到各种问题,从官方文档去获取帮助信息,往往比其他方式还要方便。

Mybatis官方文档

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章