当前位置: 首页 > news >正文

在 MyBatis 的xml中,什么时候大于号和小于号可以不用转义

在 MyBatis 中,<>在动态 SQL 标签内部​ 无需转义的功能是在以下版本引入的:

📌 关键版本说明

版本支持情况注意事项
MyBatis 3.3.0+​✅ 在 <if><where><set>动态 SQL 标签内部可直接使用 <>首次官方支持​(官方更新日志)
MyBatis 3.2.8 及之前❌ 所有位置都需要转义需使用 &lt;&gt; 或 CDATA

🌟 使用场景(仅限 MyBatis 3.3.0+)

<!-- 在动态SQL标签内部直接使用 -->
<select id="getUsers" resultType="User">SELECT * FROM users<where><if test="minAge != null">age > #{minAge}  <!-- 直接使用 > --></if><if test="maxAge != null">AND age < #{maxAge}  <!-- 直接使用 < --></if></where>
</select>

⚠️ 重要限制

  1. 仅限动态 SQL 标签内​(如 <if><foreach><choose><where><set> 等)

    <!-- 错误示例:不在动态标签内仍需转义 -->
    SELECT * FROM products 
    WHERE price > 100 <!-- 这里会报XML解析错误! -->
  2. 纯 SQL 块仍需处理
    非动态部分的 SQL 仍需 CDATA 或转义:

    <select id="getProducts"><!-- 静态SQL部分需要CDATA --><![CDATA[SELECT * FROM products WHERE price > 100]]>
    </select>

🛠️ 兼容性建议

  1. 检查 MyBatis 版本

    <!-- pom.xml 示例 -->
    <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.13</version> <!-- 推荐用新版 -->
    </dependency>
  2. 当不确定时统一用 CDATA

    <![CDATA[ age > #{value} ]]>
  3. 动态 SQL 外的比较符号​ 始终用别名:

    WHERE price &gt; 100 <!-- 通用方案 -->
http://www.lryc.cn/news/573389.html

相关文章:

  • Axios 在 Vue3 项目中的使用:从安装到组件中的使用
  • 升级到 .NET 9 分步指南
  • “最浅”的陷阱:聊聊二叉树最小深度的递归坑点与解法哲学
  • 秋招Day14 - MySQL - SQL优化
  • c++11标准(5)——并发库(互斥锁)
  • 一、什么是生成式人工智能
  • 终端里的AI黑魔法:OpenCode深度体验与架构揭秘
  • Java ArrayList集合和HashSet集合详解
  • 【论文笔记】【强化微调】TinyLLaVA-Video-R1:小参数模型也能视频推理
  • 人人都是音乐家?腾讯开源音乐生成大模型SongGeneration
  • 旧物回收小程序开发:开启绿色生活新方式
  • Python列表常用操作方法
  • 从语义到推荐:大语言模型(LLM)如何驱动智能选车系统?
  • 首页实现多级缓存
  • AWS-SAA 第二部份:安全性和权限管理
  • 《map和set的使用介绍》
  • Linux TCP/IP协议栈中的TCP输入处理:net/ipv4/tcp_input.c解析
  • TCP 三次握手与四次挥手全流程详解
  • 【智能体】n8n聊天获取链接后爬虫知乎
  • 设计模式精讲 Day 9:装饰器模式(Decorator Pattern)
  • 【RTP】基于mediasoup的RtpPacket的H.264打包、解包和demo 1:不含扩展
  • 2D曲线点云平滑去噪
  • 雨声_锦程_时年
  • linux生产环境下根据关键字搜索指定日志文件命令
  • 软件工程期末试卷选择题版带答案(共214道)
  • 借助ChatGPT快速开发图片转PDF的Python工具
  • Java大厂面试攻略:Spring Boot与微服务架构深度剖析
  • `shallowReactive` 与 `shallowRef`:浅层响应式 API
  • 网络编程及原理(六):三次握手、四次挥手
  • .Net Core 获取与bin目录相同文件路径的文件