MyBatis 簡介
1. 前言
大家好,從本小節(jié)開始,我們將一起學(xué)習(xí)MyBatis
wiki系列。
MyBatis 是目前國內(nèi) Java 領(lǐng)域中使用最為廣泛的持久化框架,它簡單易用,卻功能強大。
我們希望整理出 MyBatis “百分之二十”的知識,幫你辦到“百分之八十”的事情,當(dāng)然這里的知識遠非百分之二十。
作為 MyBatis 系列的第一小節(jié),我們將為你簡單的介紹什么是 MyBatis,MyBatis 能做什么以及學(xué)習(xí) MyBatis 的注意事項。
慕課贈言:吾嘗終日而思矣,不如須臾之所學(xué)也。
2. 什么是 MyBatis
MyBatis 是一款優(yōu)秀的持久層
框架,它支持定制化 SQL、存儲過程以及高級映射。
與其它 ORM 框架不同,MyBatis 沒有將 Java 對象與數(shù)據(jù)表關(guān)聯(lián)起來,而是作為 Java 方法和 SQL 語句的橋梁,我們一般稱它為“半自動化 ORM ”框架。
3. MyBatis 能做什么
- MyBatis 可以方便地定制化 SQL, 操縱數(shù)據(jù)庫對象;
- MyBatis 可以使用簡單的 XML 或注解來配置和映射原生類型、接口和 Java 的 POJO 為數(shù)據(jù)庫中的記錄;
- MyBatis 提供了強大的動態(tài) SQL 功能,幫助你更加靈活地使用 SQL;
- MyBatis 提供了插件增強機制,你可以輕松集成其它諸如分頁的插件。
4. Hibernate 與 MyBatis 對比
Hibernate 和 MyBatis 是 Java 中使用最為廣泛的兩個 ORM 框架,二者各有千秋,我們將它們對比并總結(jié)出如下兩點:
-
Hibernate: 全自動化 ORM 框架,數(shù)據(jù)庫移植性好,基礎(chǔ)業(yè)務(wù)幾乎不需要寫 SQL;易學(xué)難精,上手簡單但熟練使用需要閱讀大量文檔,框架結(jié)構(gòu)復(fù)雜。
-
MyBatis: 半自動化 ORM 框架,數(shù)據(jù)庫移植性一般,基礎(chǔ)業(yè)務(wù)仍需寫 SQL,但可以通過基礎(chǔ) Mapper 來簡化;易學(xué)易用,上手簡單,結(jié)構(gòu)精簡清晰,易深入學(xué)習(xí)。
對比發(fā)現(xiàn): Hibernate 適合在需求明確、業(yè)務(wù)固定的項目中使用,如 OA、ERP 項目;MyBatis 適合在需求多變,快速迭代的項目中使用,如互聯(lián)網(wǎng)的電商項目。
5. 版本說明
本教程基于 MyBatis3.5.4
版,MySQL 數(shù)據(jù)庫務(wù)必使用5.7
以上的版本,在項目實踐環(huán)節(jié)會有對應(yīng)其它庫版本的詳細說明。
6. 學(xué)習(xí)基礎(chǔ)
學(xué)習(xí) MyBatis 需要一定的前置知識,我們希望你:
- 擁有一定的 SQL 和 Java 基礎(chǔ);
- 了解 JDBC 和 數(shù)據(jù)庫的基本知識。
7. 注意事項
- MyBatis 在開發(fā)中會書寫大量的 SQL,對于 SQL 關(guān)鍵字我們統(tǒng)一大寫;
- 在 MyBatis 標(biāo)簽中書寫 SQL 語句是可以不用在句尾添加
;
的,但若是其它環(huán)境下,務(wù)必記得加上;
; - 學(xué)習(xí) MyBatis 需要一定的實踐,請務(wù)必跟隨我們一起實操;
- MyBatis 實踐需要數(shù)據(jù)庫環(huán)境,我們默認使用 MySQL,請確保你也有可用的數(shù)據(jù)庫環(huán)境;
- 本教材聚焦在如何使用 MyBatis,對于 SQL 使用我們不做過多探討。