mybatis自動生成類,ORM配置實踐

??????? mybatis目前一直作為我主要使用的ORM框架,當然,它的簡單,SQL可控,高效才是我選擇它的最終原因。前段時間學習了他的實體,ORM的XML文件自動生成,感覺也是比較簡單。下面稍微介紹一下具體的配置方面的

在它的官網上,有幾種方式來生成類及配置。

1 從命令提示符?使用 XML 配置文件

2 作為Ant 任務使用 XML 配置文件

3 作為Maven Plugin

4 從另一個Java 程序使用 XML 配置文件

5 插件生成

今天,我只講實踐第3,5點:

一 使用MAVEN插件

首先在你的POM里面添加一個PLUG,


另外,針對MVN,需要設置兩個內置變量:


mybatis.generator.overwrite:表示每次生成是否覆蓋之前的文件,默認為否

mybatis.generator.configurationFile:表示生成代碼文件的配置文件,默認文件名為generatorConfig.xml,這里我進行自定義,因為插件生成對比MVN的生成,里面的配置項不能公用,當然。各位看官,有好的方式,也請分享一下。OK。MVN的配置生成就OK了。你只需要使用熟悉的mvn clean install,即可從DB生成你想要的實體,ORM的配置。

二 使用官方的插件

這個是基于eclipse的swt的,GITHUB上面,有這個插件的地址https://github.com/mybatis/generator/tree/master/eclipse/UpdateSite,下載下來,然后放到eclispe下面的dropins下面,重啟一下就行了。

最后,我們重點的講一下generatorConfig.xml這個配置項文件

classPathEntry :元素 用于添加運行類路徑位置到類路徑中的 MyBatis Generator(MBG)。 classPathEntry元素是generatorConfiguration的子元素.MBG 在這些情況下從這些路徑下加載類:

a 當加載 JDBC 驅動內省數據庫時

b 當加載根類中的 JavaModelGenerator 檢查重寫的方法時

context :元素用于指定生成一組對象的環境。子元素用于指定要連接到的數據庫、 要生成對象的類型和要內省的表。多個 context元素可以在generatorConfiguration元素中列出來,這樣可以在同一個MyBatis Generator (MBG)從不同的數據庫或者使用不同的生成生成器參數生成對象。以下都 是context的子元素

commentGenerator:用來定義注釋生成的屬性,主要有suppressAllComments,suppressDate這兩個屬性。其中suppressAllComments
表示是否生成注釋,suppressDate表示是否生成日期

jdbcConnection:定義數據庫相關的屬性說明,比較簡單,就不列了。


javaModelGenerator:JAVA的model生成配置,主要有targetPackage,targetProject丙個屬性

targetPackage:表示生成的MODEL包路徑

targetProject:表示生成的MODEL項目路徑

sqlMapGenerator:用于定義SQL映射生成器的屬性。SQL映射生成器為每一個內省的表生成MyBatis/iBATIS形式的XML文件。如果不指定一個javaClientGenerator,則適用以下規則:

如果您指定一個sqlMapGenerator,那么MBG將只生成SQL映射的XML文件和模型對象。如果您沒有指定一個sqlMapGenerator,那么MBG將只會生成模型對象。

targetPackage:這個包用于放置生成的SQL映射文件。在默認的生成器中,屬性"enableSubPackages"用來控制如何計算實際的包。

如果是true,如果表的catalog和schema存在,就將他們作為子包加起來。如果"enableSubPackages"是false(默認值),計算的package將是targetPackage屬性指定的值。MBG 將創建所需的生成包的文件夾。

targetProject:這用來指定生成SQL映射的目標項目。當在Eclipse環境中運行時,此選項指定保存對象的位置的項目和源文件夾。在其他環境中,此值應為本地文件系統上的現有目錄。如果它不存在,MBG不會創建它。

javaClientGenerator:用于定義 Java 客戶端代碼生成器的屬性。Java客戶端生成器生成Java接口和類,它可以簡單地使用生成的Java模型和XML映射文件。在iBATIS2目標環境中,這些對象可以生成DAO接口和實現類形式的代碼。對Mybatis來說,會生成Mapper接口形式的代碼。如果不指定此元素,然后代碼生成器(MBG)將不會生成Java客戶端接口和類。

table 元素用來從內省數據庫中選擇一個表。選定的表會生成如下的這些對象:

一個 MyBatis/iBATIS 格式的SQL映射文件

一組根據表生成的"model"類:

一個和表的主鍵匹配的類(如果表有主鍵)。

一個包含了非主鍵字段和BLOB字段的類,如果存在主鍵類,這個類就會繼承主鍵類。

如果表中包含BLOB字段,就會有一個包含了BLOB字段的類。這個類會根據表的配置繼承上面的一個或兩個類。

一個用于不同的"by example"方法(selectByExample, deleteByExample)生成動態查詢條件的類。

(可選) 一個DAO接口或者類。

最后給個配置截圖:


當然,這個mybatis的插件其實是不支持多表關聯去生成代碼。初看,好像是不太友好。不過,你靜下來想一下,其實也就明白。在一個大數據訪問的時代,為什么需要多表關聯。我們跟本不需要!!!就是要單表。足夠簡單,足夠清晰,足夠NB.話說回來,你確實需要多表關連時,可以在它的基礎上,再去改你的SQL了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容