Mybatis 的 XML Mapper 文件中,不同的 XML 映 射文件,id 是不是可以重复?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis 的 XML Mapper 文件中,不同的 XML 映 射文件,id 是不是可以重复?相关的知识,希望对你有一定的参考价值。

参考技术A           不同的 XML Mapper 文件,如果配置了 "namespace" ,那么 id 可以重复;如果没有配置 "namespace" ,那么 id 不能重复。毕竟"namespace" 不是必须的,只是最佳实践而已。

         原因就是,namespace + id 是作为 Map 的 key使用的。如果没有 "namespace",就剩下 id ,那么 id 重复会导致数据互相覆盖。如果有了 "namespace",自然 id 就可以重复,"namespace"不同,namespace+ id 自然也就不同。

MyBatis的Mapper.xml文件中没有提示怎么办?

  MyBatis是一款优秀的持久层框架,给开发提供了不少的便捷,但在xml文件中编写MySQL代码时,会遇到标签没有提示的情况,怎么来解决这个问题呢?

1、给mapper文件添加上验证头部:

<!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

  上述代码中,包含了一个网址请求,在联网的状态下,会自动从该网址中获取提示所需要的dtd文件,就会有提示了,但此方法在在不联网或者网络状态不佳的情况下依然无法获得提示,我们可以通过给开发工具添加离线版的dtd文件来解决这个问题。

2:、给开发工具添加离线dtd文件:

(1)按ctrl键,然后鼠标点击这个链接:

技术图片

技术图片

 (2)从浏览器下载目录中复制出下载好的dtd文件,放到常用的文件夹中:

技术图片

(3)复制xml文件里的头部链接:

技术图片

 (4)点击顶部导航栏Window-->Preferences

技术图片

(5)点击Add,添加dtd文件:

技术图片

(6)点击File System... 然后找到dtd文件,选择并打开:

技术图片

(7)将Key type值改成URI

技术图片

(8)将第三步时复制的xml里的链接粘贴到Key框:

技术图片

(9)允许并关闭:

技术图片

  关闭xml文件,再重新打开,就会发现在未联网的情况下也能有提示啦

技术图片

 

以上是关于Mybatis 的 XML Mapper 文件中,不同的 XML 映 射文件,id 是不是可以重复?的主要内容,如果未能解决你的问题,请参考以下文章

mybatis中dao接口与mapper关联的理解

找不到映射文件mapper.xml解决方法

一个mybatis的mapper.xml文件,如何被其他的mapper.xml引用?

Mybatis中Mapper.xml 文件使用注释遇到的坑

Mybatis中Mapper.xml 文件使用注释遇到的坑

MyBatis - 如何在 mybatis xml mapper 文件中定义数组