<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          超越 Mybatis-Plus?超強(qiáng) ORM 框架橫空出世!

          共 5009字,需瀏覽 11分鐘

           ·

          2023-08-09 13:46


          1

          MyBatis-Flex 是什么


          MyBatis-Flex 是一個(gè)優(yōu)雅的 MyBatis 增強(qiáng)框架,它非常輕量、同時(shí)擁有極高的性能與靈活性。我們可以輕松的使用 Mybaits-Flex 鏈接任何數(shù)據(jù)庫(kù),其內(nèi)置的 QueryWrapper^亮點(diǎn) 幫助我們極大的減少了 SQL 編寫的工作的同時(shí),減少出錯(cuò)的可能性。

          總而言之,MyBatis-Flex 能夠極大地提高我們的開發(fā)效率和開發(fā)體驗(yàn),讓我們有更多的時(shí)間專注于自己的事情。


          2

          特征


          • 輕量:除了 MyBatis,沒有任何第三方依賴輕依賴、沒有任何攔截器,其原理是通過 SqlProvider 的方式實(shí)現(xiàn)的輕實(shí)現(xiàn)。同時(shí),在執(zhí)行的過程中,沒有任何的 Sql 解析(Parse)輕運(yùn)行。這帶來(lái)了幾個(gè)好處:1、極高的性能;2、極易對(duì)代碼進(jìn)行跟蹤和調(diào)試;3、把控性更高。

          • 靈活:支持 Entity 的增刪改查、以及分頁(yè)查詢的同時(shí),MyBatis-Flex 提供了 Db + Row^靈活 工具,可以無(wú)需實(shí)體類對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查以及分頁(yè)查詢。與此同時(shí),MyBatis-Flex 內(nèi)置的 QueryWrapper^靈活 可以輕易的幫助我們實(shí)現(xiàn) 多表查詢、鏈接查詢、子查詢 等等常見的 SQL 場(chǎng)景。

          • 強(qiáng)大:支持任意關(guān)系型數(shù)據(jù)庫(kù),還可以通過方言持續(xù)擴(kuò)展,同時(shí)支持 多(復(fù)合)主鍵、邏輯刪除、樂觀鎖配置、數(shù)據(jù)脫敏、數(shù)據(jù)審計(jì)、 數(shù)據(jù)填充 等等功能。


          3

          開始使用

          在開始之前,我們假定您已經(jīng):

          • 熟悉 Java 環(huán)境配置及其開發(fā)

          • 熟悉 關(guān)系型 數(shù)據(jù)庫(kù),比如 MySQL

          • 熟悉 Spring Boot 及相關(guān)框架

          • 熟悉 Java 構(gòu)建工具,比如 Maven


          4

          Maven 依賴


          Spring Boot 場(chǎng)景


          <dependency>
              <groupId>com.mybatis-flex</groupId>
              <artifactId>mybatis-flex-spring-boot-starter</artifactId>
              <version>1.5.3</version>
          </dependency>

          <dependency>
              <groupId>com.mybatis-flex</groupId>
              <artifactId>mybatis-flex-processor</artifactId>
              <version>1.5.3</version>
              <scope>provided</scope>
          </dependency>

          5

          同類框架「功能」對(duì)比


          MyBatis-Flex 主要是和 MyBatis-Plus 與 Fluent-MyBatis 對(duì)比,

          • MyBatis-Plus:老牌的 MyBatis 增強(qiáng)框架,開源于 2016 年。

          • Fluent-MyBatis:阿里云開發(fā)的 MyBatis 增強(qiáng)框架(來(lái)自于阿里云·云效產(chǎn)品團(tuán)隊(duì))



          測(cè)試列表(List)數(shù)據(jù)查詢


          要求返回的數(shù)據(jù)為 10 條數(shù)據(jù)。

          MyBatis-Flex 的代碼如下:


          QueryWrapper queryWrapper = new QueryWrapper();
          queryWrapper.where(FLEX_ACCOUNT.ID.ge(100).or(FLEX_ACCOUNT.USER_NAME
          .eq("admin" + ThreadLocalRandom.current().nextInt(10000))))
          .limit(10);
          mapper.selectListByQuery(queryWrapper);


          MyBatis-Plus 的代碼如下:

              
          QueryWrapper queryWrapper = new QueryWrapper();
          queryWrapper.ge("id", 100);
          queryWrapper.or();
          queryWrapper.eq("user_name", "admin" + ThreadLocalRandom.current().nextInt(10000));
          queryWrapper.last("limit 10");
          mapper.selectList(queryWrapper);


          10 輪的測(cè)試結(jié)果:

              
          ---------------
          >>>>>>>testFlexSelectTop10:90
          >>>>>>>testPlusSelectTop10WithLambda:743
          >>>>>>>testPlusSelectTop10:678
          ---------------
          >>>>>>>testFlexSelectTop10:85
          >>>>>>>testPlusSelectTop10WithLambda:692
          >>>>>>>testPlusSelectTop10:684
          ---------------
          >>>>>>>testFlexSelectTop10:84
          >>>>>>>testPlusSelectTop10WithLambda:692
          >>>>>>>testPlusSelectTop10:670
          ---------------
          >>>>>>>testFlexSelectTop10:85
          >>>>>>>testPlusSelectTop10WithLambda:737
          >>>>>>>testPlusSelectTop10:667
          ---------------
          >>>>>>>testFlexSelectTop10:85
          >>>>>>>testPlusSelectTop10WithLambda:691
          >>>>>>>testPlusSelectTop10:684
          ---------------
          >>>>>>>testFlexSelectTop10:97
          >>>>>>>testPlusSelectTop10WithLambda:760
          >>>>>>>testPlusSelectTop10:666
          ---------------
          >>>>>>>testFlexSelectTop10:80
          >>>>>>>testPlusSelectTop10WithLambda:673
          >>>>>>>testPlusSelectTop10:637
          ---------------
          >>>>>>>testFlexSelectTop10:81
          >>>>>>>testPlusSelectTop10WithLambda:653
          >>>>>>>testPlusSelectTop10:639
          ---------------
          >>>>>>>testFlexSelectTop10:82
          >>>>>>>testPlusSelectTop10WithLambda:659
          >>>>>>>testPlusSelectTop10:636
          ---------------
          >>>>>>>testFlexSelectTop10:81
          >>>>>>>testPlusSelectTop10WithLambda:654
          >>>>>>>testPlusSelectTop10:656


          測(cè)試結(jié)論

          MyBatis-Flex 的查詢 10 條數(shù)據(jù)的速度,大概是 MyBatis-Plus 的 5~10 倍左右。


          6

          支持的數(shù)據(jù)庫(kù)類型


          MyBatis-Flex 支持的數(shù)據(jù)庫(kù)類型,現(xiàn)在市面上的數(shù)據(jù)庫(kù)幾乎全部支持,我們還可以通過自定義方言的方式,持續(xù)添加更多的數(shù)據(jù)庫(kù)支持。


          數(shù)據(jù)庫(kù)方言

          在某些場(chǎng)景下,比如用戶要實(shí)現(xiàn)自己的 SQL 生成邏輯時(shí),我們可以通過實(shí)現(xiàn)自己的方言達(dá)到這個(gè)目的,實(shí)現(xiàn)方言分為兩個(gè)步驟:

          1、編寫自己的方言類,實(shí)現(xiàn) IDialect 接口
          2、通過 DialectFactory.registerDialect() 方法注冊(cè)自己的方言

          • Gitee地址https://gitee.com/mybatis-flex/mybatis-flex
          • GitHub地址:https://github.com/mybatis-flex/mybatis-flex
          • 操作文檔https://mybatis-flex.com/zh/intro/support-database.html

          瀏覽 478
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  午夜福利 国内自拍 | 鸡巴美女91 | 翔田千里与黑人未删减avXX | 黄色毛片网址 | 欧美一级专区, |