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