Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全註解執行個體詳解(三)

來源:互聯網
上載者:User
 前兩章我為大家詳細介紹了如何搭建Maven環境、Spring
MVC的流程結構、Spring MVC與Struts2的區別以及樣本中的一些設定檔的分析。在這一章,我就對樣本的階層進行說明,以及MyBatis的一些簡單介紹。    本文不會對MyBatis作詳細說明,大象還是假定閱讀本文的朋友對MyBatis(ibatis)有最基本的瞭解,只有這樣才能較好的理解本文的內容。關於MyBatis請查看它的官方文檔及其它參考資料,本文不作詳細討論。

    一、工程結構圖
    
    上面這是典型的Maven項目結構形式,使用本地倉庫管理jar包的依賴,使用外掛程式打包編譯發布非常方便,讓我們從傳統的開發方式中解放出來,大家都快來使用Maven構建項目吧!

    二、對應檔

    使用MyBatis進行持久化操作,需要設定一個對應檔,一般來說,每張表對應一個實體物件和一個mapper對應檔。而MyBatis裡面沒有像Hibernate那樣複雜的關聯關係,所以,它的每個實體類其實就是一個很普通的POJO類。而對應檔中,都是SQL語句,下面就是樣本中RoleMapper.xml的程式碼片段。

        那麼,MyBatis是如何將資料庫欄位與POJO對象進行映射的呢?這是在它的內部,會將到得的結果或結構集,與我們定義的POJO對象屬性進行映射,規則是,屬性首字母小寫,使用駝峰式命名方式,而欄位則是單詞與單詞間,用底線串連。比如:資料庫有個USER_NAME欄位,那麼與它對應的屬性就應該是userName。如果欄位命名沒有使用底線,那麼屬性可以直接定義成該單詞。比如,NAME欄位,它的屬性就是name。

    三、基於namespace介面與公用dao的區別
    從MyBatis3.0開始,對mapper中的namespace屬性新增了一個特性:可以指定具體的介面來作為持久化操作類,在介面中定義與對應檔中id屬性值相同的方法,MyBatis會自動去綁定和執行對應的SQL語句。這種介面實現方式,需要為每個Mapper建立一個介面,如果系統做大了,維護這些類會比較麻煩,大象個人傾向於基礎服務式的Dao實作類別,如例子中的MyBatisDao。
    四、MyBatisDao
    持久化操作基類,SqlSessionDaoSupport是mybatis-spring外掛程式中封裝的,用於獲得SQL
Session串連,執行資料庫操作,我定義了幾個常用的方法。    關於mybatis-spring外掛程式我簡單介紹一下, Spring
3.x的發布並沒有對MyBatis這一優秀的SQL架構提供支援,雖然在它的問題列表中已經有這樣的請求,但直到目前3.0.5版的發布,都還沒將這個問題處理掉。不過這難不倒開源世界裡廣大的愛好者與貢獻者,mybatis-spring就是在這樣的情況下誕生了。它是由MyBatis社區愛好者完成的一個開源項目,用來進行Spring
3.0與MyBatis 3.0的配置整合。該外掛程式需要運行在JDK
5.0或更高版本。

    
    五、Service    在ssm3這個樣本中,大家有沒有發現,已經沒有為每個entity定義一個dao,而是統一的調用MyBatisDao作為儲存服務介面。另外與使用Hibernate的主要區別,就是不能直接傳一個對象參數,還必須寫上key值,它是namespace加上ID值。
    
    六、entity
    MyBatis的實體類就是一個簡單的POJO對象,只是用來與表欄位進行關聯映射,請注意,我這裡所說的映射不是像Hibernate那種綁定關係,只一種存放資料的對象而已。
    
    七、測試    上面的步驟完成後,接下來就需要測試下我們的業務介面是否正常,編寫一個測試類別,為了達到目的,簡便起見,大象是對RoleService進行測試,UserService同理類似。

    在寫測試案例前,需要在POM檔案中加入一個Srping測試依賴,這是大象在前面兩章疏忽漏掉了,請大家諒解。

    
    然後編寫測試類別,運行測試,通過!

    

    到此,這一章的內容就講完了,如果有對註解不理解的地方,請看下我之前的SSH2系列之三,至於MyBatis,它的內容太多了,如果不清楚還請先看下使用指南。下一章我將會介紹web層,以及使用Spring
MVC的註解來實現控制器功能。

    本文為菠蘿大象原創,如要轉載請註明出處。http://w

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.