当前位置:主页 > 技术文档 > Mybatis资源下载

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

  • 更新:2020-10-14 16:22:15
  • 大小:82 KB
  • 热度:987
  • 审核:石逸仙
  • 类别:技术文章
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

Mybatis在Mapper.xml文件中的转义字符处理方式介绍了关于Mybatis、Mapper.xml、转义字符方面知识点,目前在Mybatis类资源综合评分为:7.2分。

资源介绍

一、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解析器忽略解析,所以更快。


资源获取

资源地址1:https://pan.baidu.com/s/1JMwi3xbOcqkQjH62FN7xMA(密码:zycj)

相关资源

网友留言

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();
}

 

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 – 映射查询语句