mybatis中sql语句CDATA标签的用法说明
sql语句CDATA标签的用法
CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。
在 XML 元素中,"<" 和 “&” 是非法的;
“<” 会产生错误,因为解析器会把该字符解释为新元素的开始;
“&” 也会产生错误,因为解析器会把该字符解释为字符实体的开始;
在mapper文件中写sql语句时,遇到特殊字符时,如:"<" 等,建议使用 <![CDATA[ sql语句 ]]> 标记,将sql语句包裹住,不被解析器解析;
例如:【伪代码】
select id from t_article where create_time <![CDATA[ <= ]]> now();
使用CDATA[ ]标签进行范围查询
在项目中使用mybatis时的SQL语句是写在xml映射文件中的,如果想要通过大于小于或者大于等于小于等于查询符合范围的数据,但是若写入的SQL语句有一些类似>,<的特殊字符的话,在解析xml文件的时候会被转义,但这并不是我们所希望的,所以这个时候可以使用<![CDATA[]]>标签来解决。
<![CDATA[ ]]> 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。
如果文本包含了很多的"<"字符 <=和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。
实例:
<select id="findList" resultType="FleeceRecord"> SELECT * FROM `fleece_record` <where> <if test="naturalLengthStart != null"> and natural_length<![CDATA[>=]]>#{naturalLengthStart} </if> <if test="naturalLengthEnd != null"> and natural_length<![CDATA[<=]]>#{naturalLengthEnd} </if> </where>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
MyBatis动态SQL标签用法实例详解
1.动态SQL片段 通过SQL片段达到代码复用 <!-- 动态条件分页查询 --> <sql id="sql_count"> select count(*) </sql> <sql id="sql_select"> select * </sql> <sql id="sql_where"> from icp <dynamic prepend="where&quo
-
Mybatis 中的<![CDATA[ ]]>浅析
在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决. <![CDATA[ ]]> 是什么,这是XML语法.在CDATA内部的所有内容都会被解析器忽略. 如果文本包含了很多的"<"字符 <=和"&"字符--就象程序代码一样,那么最好把他们都放到CDATA部件中. 但是有个问题
-
MyBatis实现动态SQL的实现方法
MyBatis 最强大的特性之一就是它的动态语句功能.如果您以前有使用JDBC或者类似框架的 经历,您就会明白把SQL语句条件连接在一起是多么的痛苦,要确保不能忘记空格或者不要在 columns列后面省略一个逗号等.动态语句能够完全解决掉这些痛苦. 尽管与动态SQL一起工作不是在开一个party,但是MyBatis确实能通过在任何映射SQL语句中 使用强大的动态SQL来改进这些状况. if 元素 if元素条件判断,动态 SQL 最常做的事就是有条件地包括 where 子句.例如: <selec
-
mybatis中sql语句CDATA标签的用法说明
sql语句CDATA标签的用法 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data). 在 XML 元素中,"<" 和 "&" 是非法的: "<" 会产生错误,因为解析器会把该字符解释为新元素的开始: "&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始: 在mapper文件中写sql语句时,遇到特殊字符时,如:"<&
-
MyBatis动态Sql之if标签的用法详解
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用if标签生成动态的Sql,主要包含以下3个场景: 1.根据查询条件实现动态查询 2.根据参数值实现动态更新某些列 3.根据参数值实现动态插入某些列 1. 使用if标签实现动态查询 假设有这样1个需求:根据用户的输入条件来查询用户列表,如果输入了用户名,就根据用户名模糊查询,如果输入了邮箱,就根据邮箱精确查询,如果同时输入了
-
Oracle在Mybatis中SQL语句的配置方法
数据库中有下划线的字段在实体中应采用驼峰命名法,如P_NAME对应pName,实例如下: 1.XML文件中SQL语句配置(Geteway.xml文件) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-m
-
Mybatis中 SQL语句复用
mapper.xml 中共用 mapper.xml 间共用 项目中也许我们会遇到一段sql语句被多个查询.增加等语句用到的情况,如何去偷懒呢,复用sql无疑是较好的选择 这里只提供简单的示范: 如果只是单表查询,并且希望共用的sql只会出现在同一个mapper.xml文件中,那么我们可以直接在 <mapper namespace="XXXXX"></mapper> 中写下面的业务代码 <sql id="unitSql"> a.us
-
浅谈mybatis中SQL语句给boolean类型赋值问题
我就废话不多说了,大家还是直接看代码吧~ <select id="getBiTree" parameterType="String" resultMap="MenuVoListMap"> SELECT m.menu_id , m.parent_id , m.`name` , 1 opens FROM menu m WHERE m.is_valid = 1 AND (m.type = 0 or m.type = 1) and m.men
-
聊聊Mybatis中sql语句不等于的表示
Mybatis sql语句不等于的表示 如果直接写 select * from user where id <> 217; mybatis就会报语法错误,<>特殊字符需要转义 如下 select * from user where id <> 217; 使用Mybatis的时候,特殊字符需进行转义,如 <> <> & & ' ' " " Mybatis 特殊符号(大于,小于,不等于)及常用函数
-
在IDEA中安装MyBatis Log Plugin插件,执行mybatis的sql语句(推荐)
查看代码执行mybatis的sql语句 File–>Settings–>Plugins 搜索 MyBatis Log Plugin Installed安装之后重启,点击上方的Tools就能看到 然后debug执行代码之后 点击启动MyBatis Log Plugin插件 就可以查看每一步执行的sql 到此这篇关于在IDEA中安装MyBatis Log Plugin插件,执行mybatis的sql语句(推荐)的文章就介绍到这了,更多相关idea 安装MyBatis Log Plugin插件内容请
-
mybatis中映射文件include标签的应用
目录 mybatis映射文件include标签应用 1.引用同一个xml中的sql片段 2.引用公用的sql片段 3.对于多个xml文件需要同时引用一段相同的 mybatis sql xml include标签 (代码去重) mybatis映射文件include标签应用 MyBatis中sql标签定义SQL片段,include标签引用,可以复用SQL片段可以使用标签提取出来,在使用的地方使用标签引用即可.sql标签中id属性对应include标签中的refid属性.通过include标签将sql
-
SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)
关于logback日志的详解见这位仁兄的博客:Spring Boot-日志配置(超详细) 我在这就开门见山直接介绍我们项目日志的配置使用吧!~ 1.基本介绍 默认情况下,Spring Boot项目就会用Logback来记录日志,并用INFO级别输出到控制台.如下图: 实际开发中我们不需要直接添加logback日志依赖. 你会发现 spring-boot-starter 其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 lo
-
关于Mybatis中SQL节点的深入解析
目录 一.文章引出原因 二.存在的问题 三.分析 SQL 生成过程 四.分析多余 SQL 的生成 五.解决办法 六.总结 一.文章引出原因 某天在完成项目中的一个小功能后进行自测的时候,发现存在一个很奇怪的 bug --- 最终执行的 SQL 与我所期望的 SQL 不一致,有一个 if 分支在我不传特定参数的情况下被拼接在最终的 SQL 上. ①定义在 XML 文件中的 SQL 语句 <select id="balanceByUserIds" parameterType=&quo
随机推荐
- ColdFusionMX 编程指南 ColdFusionMX编程入门
- Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
- Javascript中arguments和arguments.callee的区别浅析
- js自动闭合html标签(自动补全html标记)
- Nginx服务器中使用gzip压缩的相关配置解析
- 总结IOS界面间跳转的几种方法
- 使用C#处理WebBrowser控件在不同域名中的跨域问题
- 学习Bootstrap组件之下拉菜单
- php生成随机字符串可指定纯数字、纯字母或者混合的
- PHP PDO函数库详解
- c#文件的复制,移动,创建(实例代码)
- C基础 寻找随机函数的G点详解
- Android之仿美团加载数据帧动画
- 基于JavaScript实现移动端点击图片查看大图点击大图隐藏
- Android获取手机位置的实现代码
- mssqlserver恢复ldf文件数据的方法
- asp数组使用(2)
- Java编程实现遍历两个MAC地址之间所有MAC的方法
- “不能执行已释放的Script代码”错误的原因及解决办法
- ioncube_loader_win_5.2.dll的错误解决方法