背景
MyBatis提供了一個generator插件,通過這個插件可以自動實現mapper.xml 和對應的Mapp 以及實體Bean,用這個插件的好處是,xml中很多sql不用自己編寫,直接通過數據庫反向生成即可。但是他也有一個很大的弊端。
弊端:
1、如果直接修改xml文件,以後數據庫新增字段只能手動改文件,擴展很麻煩
2、如果使用example方式查詢,每次查詢都要全部結果,對數據量大的且需要列少的業務,
SQL查詢會成為瓶頸。
最佳實踐
1、生成簡單方法;
生成簡單方法,Example相關選項都設置為false
不使用Example方式,且只生成簡單的操作,generator配置片段如下,關鍵字表key_words
這樣配置只會生成如下幾個方法,左側基礎增刪改查方法列表,只提供id查詢
其他方法就可以自己進行擴展,擴展方式如下
2、擴展xml和mapper文件。
新建KeyWordsBizMapper接口 繼承自動生成的KeyWordsMapper
有了Mapper接口,就要擴展xml實現自己的擴展方法。
xml裡面有幾個注意事項
namespace 需要指向擴展Mapper(和擴展Mapper綁定)
使用BaseResultMap 擴展自KeyWordsMapper, 這樣做的好處是如果重新生成,擴展xml自動使用新映射
Base_Column_List 擴展自 KeyWordsMapper,好處同樣,重新生成自動使用
其他使用和其他xml沒有任何區別,
總結
現在大家想一下,如果我數據庫增加字段,可不可以自動生成?我需要改什麼?
答案是可以生成,不用改,直接覆蓋原有生成的bean,xml,mapper。
閱讀更多 BeginCode 的文章