MyBatis是什么

MyBatis 是一個(gè)開(kāi)源、輕量級(jí)的數(shù)據(jù)持久化框架,是 JDBC 和 Hibernate 的替代方案。MyBatis 內(nèi)部封裝了 JDBC,簡(jiǎn)化了加載驅(qū)動(dòng)、創(chuàng)建連接、創(chuàng)建 statement 等繁雜的過(guò)程,開(kāi)發(fā)者只需要關(guān)注 SQL 語(yǔ)句本身。

MyBatis logo
MyBatis logo

數(shù)據(jù)持久化是將內(nèi)存中的數(shù)據(jù)模型轉(zhuǎn)換為存儲(chǔ)模型,以及將存儲(chǔ)模型轉(zhuǎn)換為內(nèi)存中數(shù)據(jù)模型的統(tǒng)稱。例如,文件的存儲(chǔ)、數(shù)據(jù)的讀取以及對(duì)數(shù)據(jù)表的增刪改查等都是數(shù)據(jù)持久化操作。

MyBatis 支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射,可以在實(shí)體類和 SQL 語(yǔ)句之間建立映射關(guān)系,是一種半自動(dòng)化的 ORM 實(shí)現(xiàn)。其封裝性低于 Hibernate,但性能優(yōu)秀、小巧、簡(jiǎn)單易學(xué)、應(yīng)用廣泛。

ORM(Object Relational Mapping,對(duì)象關(guān)系映射)是一種數(shù)據(jù)持久化技術(shù),它在對(duì)象模型和關(guān)系型數(shù)據(jù)庫(kù)之間建立起對(duì)應(yīng)關(guān)系,并且提供了一種機(jī)制,通過(guò) JavaBean 對(duì)象去操作數(shù)據(jù)庫(kù)表中的數(shù)據(jù)。

MyBatis 前身為 IBatis,2002 年由 Clinton Begin 發(fā)布。2010 年從 Apache 遷移到 Google,并改名為 MyBatis,2013 年又遷移到了 Github。

MyBatis 的主要思想是將程序中的大量 SQL 語(yǔ)句剝離出來(lái),使用 XML 文件或注解的方式實(shí)現(xiàn) SQL 的靈活配置,將 SQL 語(yǔ)句與程序代碼分離,在不修改程序代碼的情況下,直接在配置文件中修改 SQL 語(yǔ)句。

MyBatis 與其它持久性框架最大的不同是,MyBatis 強(qiáng)調(diào)使用 SQL,而其它框架(例如 Hibernate)通常使用自定義查詢語(yǔ)言,即 HQL(Hibernate查詢語(yǔ)言)或 EJB QL(Enterprise JavaBeans查詢語(yǔ)言)。

MyBatis 官方文檔:https://mybatis.org/mybatis-3/zh/

優(yōu)點(diǎn)

  • MyBatis 是免費(fèi)且開(kāi)源的。

  • 與 JDBC 相比,減少了 50% 以上的代碼量。

  • MyBatis 是最簡(jiǎn)單的持久化框架,小巧并且簡(jiǎn)單易學(xué)。

  • MyBatis 相當(dāng)靈活,不會(huì)對(duì)應(yīng)用程序或者數(shù)據(jù)庫(kù)的現(xiàn)有設(shè)計(jì)強(qiáng)加任何影響,SQL 寫在 XML 中,和程序邏輯代碼分離,降低耦合度,便于同一管理和優(yōu)化,提高了代碼的可重用性。

  • 提供 XML 標(biāo)簽,支持編寫動(dòng)態(tài) SQL 語(yǔ)句。

  • 提供映射標(biāo)簽,支持對(duì)象與數(shù)據(jù)庫(kù)的 ORM 字段關(guān)系映射。

  • 支持存儲(chǔ)過(guò)程。MyBatis 以存儲(chǔ)過(guò)程的形式封裝 SQL,可以將業(yè)務(wù)邏輯保留在數(shù)據(jù)庫(kù)之外,增強(qiáng)應(yīng)用程序的可移植性、更易于部署和測(cè)試。

缺點(diǎn)

  • 編寫 SQL 語(yǔ)句工作量較大,對(duì)開(kāi)發(fā)人員編寫 SQL 語(yǔ)句的功底有一定要求。

  • SQL 語(yǔ)句依賴于數(shù)據(jù)庫(kù),導(dǎo)致數(shù)據(jù)庫(kù)移植性差,不能隨意更換數(shù)據(jù)庫(kù)。

使用場(chǎng)景

MyBatis 專注于 SQL 本身,是一個(gè)足夠靈活的 DAO 層解決方案。適用于性能要求高,且需求變化較多的項(xiàng)目,如互聯(lián)網(wǎng)項(xiàng)目。

如果您想了解 MyBatis 與 Hibernate 的區(qū)別,可閱讀學(xué)習(xí)《MyBatis和Hibernate的區(qū)別》一節(jié)。

拓展

如果您想了解 MyBatis 與 Hibernate 的區(qū)別,可閱讀學(xué)習(xí)《MyBatis和Hibernate的區(qū)別》一節(jié)。

閱讀條件

Mybatis-Plus(簡(jiǎn)稱 MP)是 Mybatis 的增強(qiáng)工具,在 Mybatis 的基礎(chǔ)上只做增強(qiáng)不做改變,支持 Mybatis 所有原生的特性,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生。有興趣的小伙伴可以參考 MyBatis-Plus 官網(wǎng)。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清