0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

mybatis和mybatisplus的區(qū)別

科技綠洲 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2023-12-03 11:53 ? 次閱讀

MyBatis和MyBatis Plus是兩個(gè)非常受歡迎的Java持久層框架。這兩個(gè)框架在設(shè)計(jì)和功能上有一些區(qū)別,下面我將詳細(xì)介紹它們之間的差異以及各自的特點(diǎn)。

  1. 設(shè)計(jì)理念與目標(biāo):
    MyBatis是一個(gè)輕量級(jí)的持久層框架,它提供了一個(gè)靈活的SQL映射機(jī)制,使得開(kāi)發(fā)者可以編寫(xiě)原生SQL語(yǔ)句來(lái)操作數(shù)據(jù)庫(kù)。MyBatis的設(shè)計(jì)目標(biāo)是將原生SQL和對(duì)象關(guān)系映射(ORM)相結(jié)合,以便開(kāi)發(fā)者可以靈活地操作數(shù)據(jù)庫(kù)。

而MyBatis Plus是在MyBatis的基礎(chǔ)上進(jìn)行了一些擴(kuò)展和增強(qiáng),它旨在進(jìn)一步簡(jiǎn)化開(kāi)發(fā)和提高效率。MyBatis Plus提供了一系列的增強(qiáng)功能,包括代碼自動(dòng)生成、常用CRUD操作的封裝等,讓開(kāi)發(fā)者可以更加快速地開(kāi)發(fā)和維護(hù)數(shù)據(jù)庫(kù)相關(guān)的代碼。

  1. 代碼生成:
    MyBatis并沒(méi)有內(nèi)置的代碼生成工具,開(kāi)發(fā)者需要手動(dòng)編寫(xiě)SQL映射文件和Java實(shí)體類(lèi)。但是MyBatis提供了動(dòng)態(tài)SQL語(yǔ)句的支持,可以根據(jù)不同的條件拼接SQL語(yǔ)句,使得代碼更加靈活。

而MyBatis Plus內(nèi)置了一個(gè)強(qiáng)大的代碼生成器,可以通過(guò)讀取數(shù)據(jù)庫(kù)的表結(jié)構(gòu)自動(dòng)生成對(duì)應(yīng)的SQL映射文件和Java實(shí)體類(lèi)。代碼生成是MyBatis Plus的一個(gè)重要特性之一,它可以大大減少開(kāi)發(fā)者的工作量,提高開(kāi)發(fā)效率。

  1. CRUD操作:
    MyBatis對(duì)CRUD操作并沒(méi)有進(jìn)行太多的封裝,開(kāi)發(fā)者需要手動(dòng)編寫(xiě)SQL語(yǔ)句和對(duì)應(yīng)的方法。雖然MyBatis提供了動(dòng)態(tài)SQL語(yǔ)句的支持,但是對(duì)于一些常用的操作,仍然需要手動(dòng)編寫(xiě)對(duì)應(yīng)的方法。

而MyBatis Plus對(duì)CRUD操作進(jìn)行了全面的封裝,提供了一系列的通用方法,包括插入、更新、刪除和查詢等。開(kāi)發(fā)者只需要簡(jiǎn)單調(diào)用這些方法,就可以完成相應(yīng)的數(shù)據(jù)庫(kù)操作,無(wú)需手動(dòng)編寫(xiě)SQL語(yǔ)句。這樣可以大大簡(jiǎn)化代碼的編寫(xiě),提高開(kāi)發(fā)效率。

  1. 分頁(yè)查詢:
    MyBatis對(duì)分頁(yè)查詢并沒(méi)有提供內(nèi)置的支持,開(kāi)發(fā)者需要手動(dòng)編寫(xiě)SQL語(yǔ)句和分頁(yè)邏輯。雖然可以使用數(shù)據(jù)庫(kù)的分頁(yè)函數(shù)來(lái)實(shí)現(xiàn)分頁(yè)查詢,但是這樣會(huì)使得SQL語(yǔ)句變得復(fù)雜,對(duì)開(kāi)發(fā)者來(lái)說(shuō)不夠友好。

而MyBatis Plus提供了內(nèi)置的分頁(yè)查詢支持,開(kāi)發(fā)者只需要調(diào)用相應(yīng)的分頁(yè)方法,傳入頁(yè)碼和每頁(yè)條數(shù)等參數(shù),就可以實(shí)現(xiàn)分頁(yè)查詢。MyBatis Plus使用了一種更加簡(jiǎn)單和直觀的方式來(lái)處理分頁(yè)邏輯,使得開(kāi)發(fā)者可以更加方便地進(jìn)行分頁(yè)操作。

  1. 條件構(gòu)造器:
    MyBatis并沒(méi)有提供內(nèi)置的條件構(gòu)造器,開(kāi)發(fā)者需要手動(dòng)編寫(xiě)SQL語(yǔ)句和條件判斷邏輯。雖然可以使用動(dòng)態(tài)SQL語(yǔ)句來(lái)處理?xiàng)l件查詢,但是對(duì)于復(fù)雜的條件判斷,仍然需要手動(dòng)編寫(xiě)相應(yīng)的代碼。

而MyBatis Plus提供了內(nèi)置的條件構(gòu)造器,可以方便地構(gòu)建復(fù)雜的查詢條件。開(kāi)發(fā)者可以通過(guò)鏈?zhǔn)秸{(diào)用方法來(lái)添加不同的條件,如等于、不等于、大于、小于等,從而構(gòu)建出滿足需求的查詢條件。使用條件構(gòu)造器可以使得代碼更加簡(jiǎn)潔和可讀性更高。

總結(jié):
MyBatis和MyBatis Plus是兩個(gè)非常優(yōu)秀的Java持久層框架,它們?cè)谠O(shè)計(jì)理念和功能上都有一些區(qū)別。MyBatis更加靈活,提供了原生SQL的支持,適合于對(duì)數(shù)據(jù)庫(kù)操作要求較高的開(kāi)發(fā)者。而MyBatis Plus則更加注重簡(jiǎn)化開(kāi)發(fā),提供了代碼生成和通用CRUD操作等增強(qiáng)功能,適合于追求開(kāi)發(fā)效率的開(kāi)發(fā)者。

無(wú)論選擇使用MyBatis還是MyBatis Plus,都要根據(jù)自身的需求和項(xiàng)目特點(diǎn)來(lái)進(jìn)行選擇。如果對(duì)數(shù)據(jù)庫(kù)操作要求較高,需要靈活編寫(xiě)SQL語(yǔ)句,那么選擇MyBatis更為合適。如果追求開(kāi)發(fā)效率,希望簡(jiǎn)化開(kāi)發(fā)和維護(hù)工作,那么選擇MyBatis Plus會(huì)更加方便和高效。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2967

    瀏覽量

    104751
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    403

    瀏覽量

    17487
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    764

    瀏覽量

    44130
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68612
  • mybatis
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    6713
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一文了解MyBatis的查詢?cè)?/a>

    本文通過(guò)MyBatis一個(gè)低版本的bug(3.4.5之前的版本)入手,分析MyBatis的一次完整的查詢流程,從配置文件的解析到一個(gè)查詢的完整執(zhí)行過(guò)程詳細(xì)解讀MyBatis的一次查詢流程,通過(guò)本文
    的頭像 發(fā)表于 10-10 11:42 ?1431次閱讀

    如何一鍵生成mybatisplus

    Mybatis代碼生成器相信大家用過(guò),本篇博客我們來(lái)介紹如何一鍵生成mybatisplus 的相關(guān)Entity、Mapper、Mapper XML、Service、Controller 等各個(gè)模塊
    的頭像 發(fā)表于 09-25 14:23 ?765次閱讀
    如何一鍵生成<b class='flag-5'>mybatisplus</b>

    Mybatis的內(nèi)部設(shè)計(jì)介紹

    Mybatis源碼分析-整體設(shè)計(jì)(一)
    發(fā)表于 06-06 09:43

    MyBatis的整合

    SpringBoot-15-之整合MyBatis-注解篇+分頁(yè)
    發(fā)表于 10-28 08:09

    MyBatis學(xué)習(xí)筆記-HelloWorld

    (二)MyBatis學(xué)習(xí)筆記-HelloWorld
    發(fā)表于 06-02 14:51

    Mybatis是什么

    Mybatis第一講
    發(fā)表于 06-04 15:33

    jdbc與mybatis區(qū)別

    MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集。JDBC是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn).
    發(fā)表于 02-02 17:43 ?1.1w次閱讀
    jdbc與<b class='flag-5'>mybatis</b>的<b class='flag-5'>區(qū)別</b>

    mybatis快速入門(mén)

    本文詳細(xì)介紹了mybatis相關(guān)知識(shí),以及mybatis快速入門(mén)步驟詳解。
    的頭像 發(fā)表于 02-24 09:41 ?3538次閱讀
    <b class='flag-5'>mybatis</b>快速入門(mén)

    mybatis和hibernate比較_區(qū)別_優(yōu)缺點(diǎn)

    Hibernate 是當(dāng)前最流行的O/R mapping框架,它出身于sf.net,現(xiàn)在已經(jīng)成為Jboss的一部分。 Mybatis 是另外一種優(yōu)秀的O/R mapping框架。目前屬于apache的一個(gè)子項(xiàng)目。本文詳細(xì)的對(duì)mybatis和hibernate進(jìn)行了比較。
    的頭像 發(fā)表于 02-24 10:35 ?3w次閱讀

    mybatis中#和$的區(qū)別

    ${ } 變量的替換階段是在動(dòng)態(tài) SQL 解析階段,而 #{ }變量的替換是在 DBMS 中。這是 #{} 和 ${} 我們能看到的主要的區(qū)別,除此之外,還有以下區(qū)別:#方式能夠很大程度防止sql
    發(fā)表于 02-24 13:35 ?2272次閱讀

    Mybatis-Plus Mybatis增強(qiáng)工具包

    ./oschina_soft/gitee-mybatis-plus.zip
    發(fā)表于 06-13 11:34 ?1次下載
    <b class='flag-5'>Mybatis</b>-Plus <b class='flag-5'>Mybatis</b>增強(qiáng)工具包

    easy-mybatis Mybatis的增強(qiáng)框架

    ./oschina_soft/gitee-easy-mybatis.zip
    發(fā)表于 06-14 09:45 ?1次下載
    easy-<b class='flag-5'>mybatis</b> <b class='flag-5'>Mybatis</b>的增強(qiáng)框架

    Fluent Mybatis、原生MybatisMybatis Plus對(duì)比

    使用fluent mybatis可以不用寫(xiě)具體的xml文件,通過(guò)java api可以構(gòu)造出比較復(fù)雜的業(yè)務(wù)sql語(yǔ)句,做到代碼邏輯和sql邏輯的合一。不再需要在Dao中組裝查詢或更新操作,在xml或
    的頭像 發(fā)表于 09-15 15:41 ?1434次閱讀

    mybatis中$和井號(hào)區(qū)別

    MyBatis是一個(gè)開(kāi)源的Java持久層框架,它提供了許多強(qiáng)大的功能用于簡(jiǎn)化數(shù)據(jù)庫(kù)操作。在MyBatis中,我們可以使用兩種方式來(lái)動(dòng)態(tài)生成SQL語(yǔ)句:$和#。 和#都可以用來(lái)替換SQL語(yǔ)句中的參數(shù)
    的頭像 發(fā)表于 12-03 14:53 ?977次閱讀

    mybatis邏輯分頁(yè)和物理分頁(yè)的區(qū)別

    MyBatis是一個(gè)開(kāi)源的Java持久層框架,它與其他ORM(對(duì)象關(guān)系映射)框架相比,具有更加靈活和高性能的特點(diǎn)。MyBatis提供了兩種分頁(yè)方式,即邏輯分頁(yè)和物理分頁(yè)。在本文中,我們將詳細(xì)介紹
    的頭像 發(fā)表于 12-03 14:54 ?916次閱讀