一、XML映射文件是啥
前面我們學過了在Mapper接口用@注解的方式來操作sql語句
那么XML映射文件就另一種操作sql語句的方法
為什么還要有這么個玩意?
我簡單說就是:如果有的sql特別復雜的話,比如需要【動態sql】的話,就得用到XML映射文件(這里的【動態sql】不是簡單動態傳幾個參數,而是動態拼接where后面的條件......我下一篇會講到);
當然@注解也是一種很方便的方法,沒有哪個更好,你想用哪個就用哪個,只要記住【動態sql】要用XML映射文件
二、怎么用
1、規范要求
配置XML文件得規范如下:必須按這個要求一步一步來

2、配置同包同名文件
首先來到【resources】資源包,右鍵新建一個跟放我們Mapper目錄的包的【同名字包】


但是注意了!!!
之前我們創包為了圖方便,直接新建一個【類】或者一個【接口】的同時,通過xxx.xxx.xxx這樣的形式把各級的目錄都創建好了
但是現在這里在這個目錄起名的時候不能這樣,因為這樣只會生成一個叫《xxx.xxx.xxx》的文件夾


要采用 “/” 的路徑分割法,xxx/xxx/xxx


接著就到這個剛創建好的包里,新建XML文件,也是跟我們的Mapper里的接口要一樣名



3、XML文件配置
那么XML文件創建好之后,因為XML文件需要有一些約束,所以我們需要手動配到文件里
?先把我們XML文件自帶的這些原始代碼刪掉

然后把下面的這段代碼復制上XML文件最上面即可
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
出自于Mybatis官網:入門_MyBatis中文網


然后我們就可在下面寫一個雙標簽<mapper></mapper>,這里面就是執行所有sql語句操作的代碼區

接下來我們要在<mapper>的namespace命名空間里綁定上是哪一個接口類名

那接口類名去哪看?找到你要對于的接口,右鍵它的接口名,選“復制引用”
中文
英文

ok,現在<mapper></mapper>里可以執行sql語句操作了
4、怎么寫sql語句?
要做什么操作,你就選什么標簽

然后在里面寫上對應sql的語句就行,其實跟@注解(sql語句)差不多,不過這些sql操作標簽都有一個id屬性,就是用來綁定原先對應注解的方法的方法名

原先的@注解就可以注釋掉了

如果像select這種操作,方法需要有返回值的,還得帶上一個resultType,綁定的是【返回單條記錄所封裝的類型】,比如返回全部員工信息List<Emp>,那么單條信息就是Emp(全類名);加入返回的是一個員工對象Emp,那單條信息也就是Emp(全類名);
那么注意,不單單是一個類名就行,是全類名,全類名去到類的定義處,【復制引用】即可獲得


總結:這兩種想用哪個用哪個,兒子對應關系如下圖

三、對應的高效插件:MyabtisX
簡單說,MybatisX就是能快速幫你跳到【對應某方法的sql語句的地方】,或者跳到【對應某sql語句的方法的地方】





點一下就跳轉了
還有一個好處,你在Mapper接口寫好一個方法后,只要你的方法名里含有:select、update、delete、insert......這些sql操作的語句,那么摁下【Alt + 回車】就會有這么一個功能【Generrate statement】,點擊會讓你選擇你要生成的對應的sql操作,選擇一個就可以自動到XML文件里生成對應的sql代碼區



感覺這一章其實沒啥用,就簡短寫了