一,区别
1,一次性创建多级目录:
首先在resources中直接创建AA.BB.CC.DD, 你千万不要以为这是四个目录, 它仅仅只是一个目录,只不过该目录名是带点的"."
-
-
-
此时在mybatis中扫描该目录中的xml文件的时候,要这样写:
mybatis:
mapper-locations: AA.BB.CC.DD/*.xml //它表示带点"."的目录名下的任意的xml文件
2,分别创建多级目录:
首先在resources中创建目录AA, 然后在AA目录中创建目录BB, 然后在BB目录中创建目录CC,然后在CC目录中创建目录DD。
此时虽然resources中显示的是AA.BB.CC.DD, 但其实它是四个目录
-
-
-
此时在mybatis中扫描该目录中的xml文件的时候,要这样写:
mybatis:
mapper-locations: AA/BB/CC/DD/*.xml
//它表示AA目录下的BB目录下的CC目录下的DD目录下的xml文件
总结:在resources中的目录名字是可以带点"."的
虽然两者目录显示的都是AA.BB.CC.DD, 但是它们的实际意义是不一样的
二,Mybatis中的接口文件和SQL映射文件深刻理解
2.1 在Mybatis中的Mapper.java接口和Mapper.xml不在同一目录下的坏处:
在com.example.Mapper包中创建Mapper.java接口
-
-
在resources中的Mapper包中创建Mapper.xml文件,
-
-
此时该接口文件和xml文件不在同一目录下,所以你就要在application.yml中配置具体的扫描路径来扫描具体的xml文件:
mybatis:
mapper-locations: Mapper/*.xml
坏处是: 需要写具体的扫描路径来扫描XML文件
2.2 在Mybatis中的Mapper.java接口和Mapper.xml在同一目录下的好处:
在com.example.Mapper包中创建Mapper.java接口
-
-
在resources中的创建包com. 然后在com中创建包example, 然后在example包中创建包Mapper, 然后在Mapper包中创建Mapper.xml文件, 一定要分开创建这三个目录
此时就是com.example.Mapper中创建了Mapper.xml文件
-
-
-
此时该接口文件和xml文件在同一目录下,这样就可以不用在application.yml中配置具体的扫描路径了,可以直接省略这一步骤。
因为该接口文件Mapper.java在要使用到xml文件的时候,会默认自动加载该接口文件所在的目录中的xml文件
好处是: 不需要写具体的扫描路径来扫描XML文件