<id property="id" column="id"/>
我們對 id標簽的理解是,它配置的字段為表的主鍵(聯合主鍵時可以配置多個 id 標簽),因為myBatis 中resultMap 只用於配置結果如何映射,並不知道這個表具體如何。 id 的唯一作用就是在嵌套的映射配置中判斷數據是否相同,當配置id標簽時, Mybatis只需要逐條比較所有數據中 id 標簽配置的字段值是否相同即可。在配置嵌套結果查詢時,配置 id 標簽可以提高處理效率。
這樣一來,上一篇文檔中測試結果就不難理解了,因為前兩條數據 userMap 部分的id相同 所以它們屬於同一個用戶,因此這條數據會合並到同一個用戶中。
id標簽的設置還是很有必要的,如果僅由resultMap標簽完成,當存在多條數據結果是,查詢時間會十分的長,這時id標簽設置就顯得十分的有必要。