隨筆-35  評論-33  文章-0  trackbacks-0
                   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了。



          我的微信公眾號,歡迎溝通學習。
          posted on 2016-01-30 13:45 alexcai 閱讀(3332) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2016年1月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(2)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 合作市| 苍梧县| 通化市| 屯门区| 行唐县| 乌恰县| 滨州市| 岑溪市| 房产| 屯留县| 扬中市| 鱼台县| 盈江县| 华池县| 吴堡县| 崇左市| 南丰县| 浦县| 大田县| 靖安县| 辽宁省| 门源| 贵州省| 宿州市| 绥德县| 钟祥市| 永济市| 湖南省| 灵武市| 民县| 商南县| 灵石县| 井研县| 南昌市| 晴隆县| 九台市| 如东县| 屯昌县| 犍为县| 西乡县| 巴青县|