首页 > 其他分享 >【MyBatis】xml 大于|小于|等于 写法及介绍

【MyBatis】xml 大于|小于|等于 写法及介绍

时间:2024-07-10 18:20:14浏览次数:18  
标签:xml gt age 转义 转义字符 MyBatis 写法 select

在 *.xml 中使用常规的 < > = <= >= 会与xml的语法存在冲突

方法一:使用xml 原生转义的方式进行转义#

字符名称 sql符号 转义字符
大于号 > &gt;
小于号 < &lt;
不等于 <> &lt;&gt;
大于等于号 >= &gt;=
小于等于号 <= &lt;=
& &amp;
单引号 ' &apos;
双引号 " &quot;

简单代码示例:#

SQL语句#

select * from user where `age` <= 10

xml 语句#

<select id="getUser"  resultType="userInfo">
    select * from user 
        where `age`  &lt;= #{age}
</select>

写法注意#

  • 转义字符 之前不能有空格,例如:& gt; 或者 &g t; 都是错误的
  • 转义字符 必须以; 结尾
  • 转义字符 是区分大小写的
  • 单独出现的&不会被认为是转义的开始
  • 转义字符 中是没有 = 所以 大于等于 在写的时候,=直接拼接在转义字符结尾的后面

注意【MarkDown】小知识#

以上转义符号在 【MarkDown】 中也同样试用会被转义,在【MarkDown】文档中想要保留展示这些转移符号,需要在转义符前面写上一个 '\',例如:\&gt;

方法二:使用 <![CDATA[ 内容 ]]>

在 xml 格式中,当遇到 <![CDATA[ ]]> 这种格式时,会把方块中的内容直接输出,不做任何的解析转义

字符名称 字符串符号 示例代码
大于号 > <![CDATA[ > ]]>
小于号 < <![CDATA[ < ]]>
不等于 <> <![CDATA[ <> ]]>
大于等于号 >= <![CDATA[ >= ]]>
小于等于号 <= <![CDATA[ <= ]]>

简单代码示例:#

SQL语句

select * from user where `age` <= 10

xml 语句

<select id="getUser"  resultType="userInfo">
    select * from user 
        where `age`  <![CDATA[ <= ]]>  #{age}
</select>
<select id="getUser"  resultType="userInfo">
    select * from user 
        <![CDATA[ where `age` <= #{age} ]]>
</select>

写法注意

  • <![CDATA[ 内容 ]]> 中的内容 部分,不能再包含 <![CDATA[]]> ,也不能嵌套使用
  • <![CDATA[]]> 是一个整体,处理放置内容文本的部分之外,不能出现 空格 或者 换行

两种方法对比

  • <![CDATA[]]> 比 转义符 来的繁琐
  • <![CDATA[]]> 表示xml解析器忽略解析,相对比速度会比较快
  • 个人比较喜欢使用 <![CDATA[]]> ,因为我记不住那个转义的意思

标签:xml,gt,age,转义,转义字符,MyBatis,写法,select
From: https://www.cnblogs.com/geek233/p/18294771

相关文章

  • Java后端tlias员工部门管理-员工管理下-MyBatis-4
    当我们完成了员工管理的分页查询,那么接下来就要完成员工管理的批量删除、新增员工、根据ID查询员工、根据ID修改员工功能。下图是最终完成的示例 批量删除批量删除也是查询语句,所以我们在EmpMapper只需要编写方法,而不需要在上面编写复杂的查询语句,而是在EmpMapper.xml编写......
  • 使用引用 XML 文件来优化 EtherCAT ESI 文件的描述
    使用引用XML文件来优化EtherCATESI文件的描述在EtherCAT系统中,ESI(EtherCATSlaveInformation)文件是描述EtherCAT从设备属性和行为的重要文件。随着系统复杂度的增加,ESI文件的内容可能会变得非常庞大和冗余。为了优化这些文件,我们可以通过引用其他XML文件......
  • SpringBoot 整合 MyBatis 时报java.lang.IllegalArgumentException: Unable to instan
    配置   报错信息: 原因:版本不兼容,降低 mybatis 版本 问题解决: ......
  • MyBatisPlus 实现数据库 CURD 操作
    BaseMapper接口方法介绍BaseMapper中提供了CRUD方法,具体方法如下://插入一条记录intinsert(Tentity);//根据entity条件,删除记录intdelete(@Param(Constants.WRAPPER)Wrapper<T>wrapper);//删除(根据ID批量删除)intdeleteBatchIds(@Param(Constants.COLLEC......
  • SpringBoot 整合 MyBatisPlus框架入门
    步骤1:创建maven工程创建一个空Maven工程,如下:步骤2:pom.xml文件中添加MyBatisPlus相关依赖<dependencies><!--mybatispulus依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter&l......
  • Mybatis Plus 3.X版本的insert填充自增id的IdType.ID_WORKER策略源码分析
    总结/朱季谦某天同事突然问我,你知道MybatisPlus的insert方法,插入数据后自增id是如何自增的吗?我愣了一下,脑海里只想到,当在POJO类的id设置一个自增策略后,例如@TableId(value="id",type=IdType.ID_WORKER)的注解策略时,就能实现在每次数据插入数据库时,实现id的自增,例如以下形式......
  • MyBatis 框架核心及面试知识要点
    1、什么是MyBatis?MyBatis是一款优秀的支持自定义SQL查询、存储过程和高级映射的持久层框架,消除了几乎所有的JDBC代码和参数的手动设置以及结果集的检索。MyBatis可以使用XML,或注解进行配置和映射,MyBatis通过将参数映射到配置的SOL,形成最终执行的SOL语句......
  • MyBatisPlus基础查询
    MyBatisPlus基础查询使用:1:多条件查询&排序:QueryWrapper<User>queryWrapper=newQueryWrapper<>();queryWrapper.lambda().ge(User::getId,100).orderByDesc(User::getId);list=userService.list(queryWrapper);2:模糊查询:QueryWrapper<User>queryW......
  • 手写MyBatis
    1.前言本篇博客,将使用JDK动态代理、注解、反射等技术,编写一个最简单的MyBatis,可基本实现对象的增删查改2.注解的定义2.1Delete注解/***@ClassNameDelete*@Descriiption删除注解*@Authoryanjiantao*@Date2019/6/2711:03**/@Target(ElementType.METHOD)......
  • Mybatis -过滤查询
    一、过滤查询过滤查询实则是根据用户传入的条件进行数据的筛选查询,最终返回结果给用户。1、需求及效果图例如:在商品列表中,用户可以根据自己的需要,按照商品的名称和价格范围对商品进行查询。2、原理分析以上条件设计,后台需执行的 SQL会有如下几种: 需求1:查询所有货品......