2016/6/11

[maven 5] MyBatis自動產生程式碼, 並整合Spring


  • 不管是在Hibernate或者MyBatis Framework , 需要有DAO、VO、mapping映射檔、config設定檔等檔案幫我們完成ORM 
    • 在設定檔的部分主要含三個部分 , 資料庫連線設定 、匯入映射檔、以及其他設定
    • 在映射檔的部分包含VO物件與資料庫Table的對應關係
    • VO物件主要就是table的描述 , 一個VO類別類似一個table的 schema , 一個VO物件代表一筆資料
    • DAO是最靠近資料庫的類別, 通常是一個Table對應一個DAO 為求方便管理 , 所有對資料庫的操作(增刪改查) 皆包含在此 , DAO類別也可避免framework直接操作資料庫  , 未來需要抽換framework時才方便  ,  使用者在操作時也未必直接操作dao物件 , 反而是service物件 來完成資料庫操作 , service物件可能還包含資料庫外的其他操作。

  • Spring 整合了hibernate 或者 Mybatis的部分 , Spring 提出了 IOC與depency injection的作法 ,  並且發揚AOP概念的許多做法 
  • 在建立Hibernate 與 Spring 的設定部分, 主要有三種作法 , 此三種方法可並存
    • XML 設定
    • Annotation註解
    • Java Config 
  • 此篇接續繼續完成 Mybatis , 利用 generator.xml 自動產生  mapper(即dao) 、 vo 、example ....等物件 , 並且整合 Spring 
    • example 即是用寫程式的方式完成sql組合 
  • POM.xml 給予maven 設定 , 下載generator

  • 準備好以下資料夾(new package) 
  • 安裝 Mariadb 10 或任一種DB , 建立資料庫 MYDB 與  table user
CREATE TABLE `user` (
  `id` int(18) NOT NULL,
  `name` varchar(20) NOT NULL,
  `pwd` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
  • 設定 generatorConfig.xml , 包含db連線 , 預產生之程式碼放置路徑 , 對象table





  • 設定完畢後進行指令操作 , 找到你的jar路徑與generatorConfig.xml執行檔如下 
    •  java -jar  C:\maven_repository\org\mybatis\generator\mybatis-generator-core\1.3.2\mybatis-generator-core-1.3.2.jar  -configfile C:\jboss_workspace\SSHBaseApp\src\main\resources\generatorConfig.xml -overwrite

  • 執行完畢即完成產生dao 、mapper 、vo 、example等物件




  • 這樣mybatis的部分已算完成 , 接著整合在spring裡 , 由spring控制資料庫連線
    • 透過JNDI NAME連DB , 也可以用下方註解的方式連線 , jndi name 為 java:/MYDB
    • 將dataSource交由Spring控制 , 並且將 mappings目錄下的所有xml映射檔交由Spring控制, 因此這此專案中幾乎是用不到mybatis的設定檔 
      • classpath:mappings/*.xml


  • 為了要建立dataSource , 需先再納入3個jar到pom.xml裡





  • 最後要完成jndi註冊 , 此專案的伺服器用的是 jboss , 需在jboss註冊 jndi name 
    • 第一篇安裝jboss eap時含有簡易的jboss ,  至jboss目錄下尋找 standalone.xml
      C:\jbdevstudio\runtimes\jboss-eap\standalone\configuration
    • 新增 datasource 如下 : jndi name :  java:/MYDB

  • 加入mariadb的driver , 以及新增自訂的module來源



  • 將mariadb的jar 放到 自訂module路徑下 , 並且在其他module目錄底下找到h2 資料庫的module.xml檔複製一份來使用


  • 編輯module.xml 將 mariadb 的jar 匯入即完成jndi name的註冊


  • 啟動jboss 無異狀 , 各功能正常載入



沒有留言:

張貼留言

test2