MyBatis是另外一款優秀的ORM架構,前身為iBATIS。凡事預則立,不預則廢。鑒于以後的項目可能會用到它,是以決定提前學習。本着分享和督促自己學習的目的,筆者将陸續把學習筆記貼出,希望對朋友們有所幫助。如前述博文所述,筆者将使用ant來管理工程。對ant不熟悉的朋友,請參考筆者的兩篇預備篇博文:《ant的下載下傳與安裝——mybatis學習筆記之預備篇(一)》和《ant入門示例——mybatis學習筆記之預備篇(二)》。
本學習筆記以模拟學生選課管理為背景,以MySQL5.5作為資料庫。建立資料庫、使用者、表以及使用者授權的SQL腳本(courseman.sql)如下(在本文下方可下載下傳附件,含本示例全部代碼。):
在指令行下以root使用者登入(mysql –uroot -p),用source指令運作此腳本(假如此腳本在D盤下,即d:\courseman.sql,則運作指令:source d:/courseman.sql。注意,這裡是“/”,而不是“\”)。
本示例的任務是根據學生的ID讀取學生資訊。
筆者在自己機器上的E:\DemoPrograms目錄下建立目錄MyBatis01,用來存放本示例的工程。按照ant工程常見的組織形式,生成檔案build.xml存放在此目錄下,另外建立兩個目錄:src(存放源代碼和配置檔案)lib(存放jar包),而classes目錄讓ant幫我們建立。将本次要用到的jar包複制到lib目錄下(分别為mybatis的mybatis-3.0.6.jar和MySQL的JDBC驅動包mysql-connector-java-5.1.20-bin.jar)。
在src目錄下建立resources目錄,用來儲存相關的配置檔案。之後,我們将要求ant把此目錄複制到classes目錄下。由于classes目錄會被ant添加到類路徑中,是以MyBatis可以通路到這些配置檔案。其中核心配置檔案configuration.xml(當然也可以取其他名字)的内容如下:
(注:我在configuartion.xml和下面的StudentMapper.xml中添加中文注釋後報“Invalid byte 1 of 1-byte UTF-8 sequence.”錯誤,不知為何。有知道的朋友望告知。是以需要本示例代碼的朋友不要複制這兩個檔案的代碼,在本文下方下載下傳附件即可。附件可直接運作。)
此配置檔案很簡單,這也展現了筆者一向的原則:從最簡單的開始。其實有部分知識不太了解也屬正常,慢慢用多了自然就了解了,熟悉了,這符合一般的學習規律。相信包括筆者在内的學習者,都是這種情況。
接着編寫學生類,這是一個普通的java bean。代碼如下:
按照包的層次結構,在src目錄下建立子目錄層次com\abc\domain,然後把Student.java存放于此。
MyBatis需要我們提供一個接口,在接口中聲明通路資料庫的方法。是以,編寫接口StudentMapper.java如下:
類似地,将此檔案放置在src目錄下的com\abc\mapper目錄下。
現在編寫上面提到的mapper檔案StudentMapper.xml。在此檔案裡,我們寫好查詢的SQL語句,并配置好映射關系。内容如下:
MyBatis将根據此檔案幫我們實作StudentMapper接口。下面編寫TestMyBatis.java,實作我們的功能。代碼如下:
在指令視窗進入E:\DemoPrograms\MyBatis01目錄,運作指令:ant run。則運作結果如下:

猛戳這裡全面系統地學習MyBatis 3
MyBatis技術交流群:188972810,或掃描二維碼:
【MyBatis學習筆記】系列之預備篇一:ant的下載下傳與安裝
【MyBatis學習筆記】系列之預備篇二:ant入門示例
【MyBatis學習筆記】系列之一:MyBatis入門示例
【MyBatis學習筆記】系列之二:MyBatis增删改示例
【MyBatis學習筆記】系列之三:MyBatis的association示例
【MyBatis學習筆記】系列之四:MyBatis association的兩種形式
【MyBatis學習筆記】系列之五:MyBatis與Spring內建示例
【MyBatis學習筆記】系列之六:MyBatis與Spring內建示例續
【MyBatis學習筆記】系列之七:MyBatis一對多雙向關聯
【MyBatis學習筆記】系列之八:MyBatis MapperScannerConfigurer配置
【MyBatis學習筆記】系列之九:MyBatis collection的兩種形式
【MyBatis學習筆記】系列之十:MyBatis日志之Log4j示例
【MyBatis學習筆記】系列之十一:MyBatis多參數傳遞之注解方式示例
【MyBatis學習筆記】系列之十二:MyBatis多參數傳遞之預設命名方式示例
【MyBatis學習筆記】系列之十三:MyBatis多參數傳遞之Map方式示例
【MyBatis學習筆記】系列之十四:MyBatis中的N+1問題
【MyBatis學習筆記】系列之十五:MyBatis多參數傳遞之混合方式
【MyBatis學習筆記】系列之十六:Spring聲明式事務管理示例
【MyBatis學習筆記】系列之十七:MyBatis多對多儲存示例
【MyBatis學習筆記】系列之十八:MyBatis多對多關聯查詢示例
【MyBatis學習筆記】系列之十九:如何在MyBatis-3.2.7中使用Log4j2 rc2
MyBatis中如何通過繼承SqlSessionDaoSupport來編寫DAO(一)
MyBatis中如何通過繼承SqlSessionDaoSupport來編寫DAO(二)