当前位置:首页 > >
Mybatis在Mapper.xml文件中的转义字符处理方式

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

时间:2020-10-14 16:22:15大小:82 KB已被325人关注

Mybatis应用实践
Mybatis应用实践

一、XML转义字符

XML只有5个转义符:

 

转义符 表达式 说明
&lt; < 小于号
&gt; > 大于号
&amp; &
&apos; 单引号
&quot; " 双引号

值得注意的是:

转义序列字符之间不能有空格;
转义序列必须以”;”结束;
单独出现的”&”不会被认为是转义的开始;
区分大小写。
但是严格来说,在XML中只有”<”和”&”是非法的,其它三个都是可以合法存在的,但是,把它们都进行转义是一个好的习惯。

用转义字符进行替换:

例如,查询年龄<=30 且 >=18的用户 :

SELECT * FROM user WHERE age &lt;= 30 AND age &gt;= 18

二、<![CDATA[ ]]> 符号

被<![CDATA[]]>这个标记所包含的内容将表示为纯文本,比如<![CDATA[<]]>表示文本内容“<”。

不管怎么样,转义前的字符也好,转义后的字符也好,都会被xml解析器解析,为了方便起见,使用<![CDATA[]]>来包含不被xml解析器解析的内容。

但要注意的是:

此部分不能再包含”]]>”;

不允许嵌套使用;

"]]>"这部分不能包含空格或者换行。

所以上面的SQL可以写成这个:

<![CDATA[ SELECT * FROM  user WHERE  age  <= 30 AND age >= 18 ]]>

最后,说说<![CDATA[]]>和xml转移字符的关系,它们两个看起来是不是感觉功能重复了?

是的,它们的功能就是一样的,只是应用场景和需求有些不同:

<![CDATA[]]>不能适用所有情况,转义字符可以;
对于短字符串<![CDATA[]]>写起来啰嗦,对于长字符串转义字符写起来可读性差;
<![CDATA[]]>表示xml解析器忽略解析,所以更快。

已被643人点赞
mybatis Mapper接口映射Mapper.xml代码分析
mybatis Mapper接口映射Mapper.xml代码分析

我们在使用mybatis时,会用到Mapper接口映射Mapper.xml,具体怎么映射的我们不知道。只知道要这么用,下面我们开始分析mybatis代码。

在分析具体代码时,我们有必要先看一下jdk动态代理。

简单点说:jdk动态代理,可以让我们在不实现接口的情况下,去动态生成接口的实现。

传统上我们要去实现接口,都会创建具体的实现类.java,  而jdk动态代理,可以让我们不用创建具体的实现类.java,就可以生成接口实现。

代码如下:

/**
 * 代理工具方法,可以为任意接口生成任意实例代理,该方式使用在了mybatis的Mapper接口映射Mapper.xml中,具体在     MapperProxyFactory
 * @param tClass
 * @param invocationHandler
 * @param <T>
 * @return
 */
public <T> T test4(Class<T> tClass, InvocationHandler invocationHandler) {
   T t = (T) Proxy.newProxyInstance(tClass.getClassLoader(), new Class[] {tClass},invocationHandler);
   return t;
}
 
@Test
public void test6() {
   UserMapper userMapper = test4(UserMapper.class, new InvocationHandler() {
      @Override
      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
         System.out.println("查询所有");
         return null;
      }
   });
   userMapper.getAll();
}

 

已被366人点赞
MyBatis Mapper XML 文件 的学习详解
MyBatis Mapper XML 文件 的学习详解

MyBatis 真正的力量是在映射语句中。这里是奇迹发生的地方。对于所有的力量,SQL 映射的 XML 文件是相当的简单。当然如果你将它们和对等功能的 JDBC 代码来比较,你会发现映射文件节省了大约 95%的代码量。MyBatis 的构建就是聚焦于 SQL 的,使其远离于普通的方式。

SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):

cache – 配置给定命名空间的缓存。

cache-ref – 从其他命名空间引用缓存配置。

resultMap – 最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载你的对象。

parameterMap – 已经被废弃了!老式风格的参数映射。内联参数是首选,这个元素可能在将来被移除。这里不会记录。

sql – 可以重用的 SQL 块,也可以被其他语句引用。

insert – 映射插入语句

update – 映射更新语句

delete – 映射删除语句

select – 映射查询语句

已被258人点赞
下载地址:百度网盘下载
相关资源
深入浅出MyBatis技术原理与实战
深入浅出MyBatis技术原理与实战 高清版

随着大数据时代的到来,Java 持久层框架MyBatis 已经成为越来越多企业的选择。遗憾的是,时至今日国内依然没有一本讨论MyBatis 的书,这增加了初学者的学习难度,初学者往往只能基于零星的

立即下载
Spring MVC+MyBatis开发从入门到项目实战
Spring MVC+MyBatis开发从入门到项目实战 影印完整版

工作经验多:千万浏览量时尚博主倾囊相授,陪你走入Web开发设计的各个方面。 初学者:从简易的示例学起,慢慢深层次技术性关键。 內容全:包含SpringMVC与MyBatis的33个方法,56个案例。 重实

立即下载
Spring MVC+MyBatis快速开发与项目实战
Spring MVC+MyBatis快速开发与项目实战 高清扫描版

本书从开发实战出发,以新版Spring、Spring MVC和MyBatis为基础,结合开发工具Intellij IDEA,通过完整的项目实例让读者快速掌握SSM的开发技能。

立即下载
Mybatis3.5.2 参考文档
Mybatis3.5.2 参考文档 清晰版

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

立即下载
Spring+MyBatis企业应用实战
Spring+MyBatis企业应用实战 完整第2版

Spring+MyBatis企业应用实战(第2版) 主要详细介绍了JavaEE行业的2个开源系统架构:Spring的MVC和MyBatis。在其中Spring的版本号为5.0,MyBatis的版本号是3.4.5。这书的实例提议在Tomcat8上运作。 这书重中之

立即下载
Spring+MyBatis企业应用实战
Spring+MyBatis企业应用实战 高清版

《Spring+MyBatis企业应用实战》 介绍了Java EE 领域的两个开源框架:Spring 的MVC 和MyBatis。其中Spring 的版本为4.2,MyBatis 的版本是3.4。本书的示例建议在Tomcat 8 上运行。 《Spring+MyBatis企业应用实战》

立即下载
MyBatis从入门到精通
MyBatis从入门到精通 完整版

MyBatis从入门到精通 中从一个简单的MyBatis查询入手,搭建起学习MyBatis的基础开发环境。通过全面的示例代码和测试讲解了在MyBatis XML方式和注解方式中进行增、删、改、查操作的基本用法,介

立即下载

Copyright 2020-2021 www.xz577.com 码农之家