最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatis Flex全解析

 更新時(shí)間:2025年12月19日 11:59:33   作者:月軒居士  
MyBatis-Flex是一個(gè)輕量高效的MyBatis增強(qiáng)框架,具有極高性能和靈活性,MyBatis-Flex 能夠極大地提高我們的開(kāi)發(fā)效率和開(kāi)發(fā)體驗(yàn),讓我們有更多的時(shí)間專(zhuān)注于自己的事情,本文給大家介紹MyBatis Flex全解析,感興趣的朋友跟隨小編一起看看吧

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

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

Mybatis-Flex的特點(diǎn)

輕量

除了 MyBatis,沒(méi)有任何第三方依賴(lài)輕依賴(lài)、沒(méi)有任何攔截器,其原理是通過(guò) SqlProvider 的方式實(shí)現(xiàn)的輕實(shí)現(xiàn)。同時(shí),在執(zhí)行的過(guò)程中,沒(méi)有任何的 Sql 解析(Parse)輕運(yùn)行。這帶來(lái)了幾個(gè)好處:

1、極高的性能;

2、極易對(duì)代碼進(jìn)行跟蹤和調(diào)試;

3、把控性更高。

如果你近期準(zhǔn)備面試跳槽,建議在ddkk.com在線刷題,涵蓋 一萬(wàn)+ 道 Java 面試題,幾乎覆蓋了所有主流技術(shù)面試題,還有市面上最全的技術(shù)五百套,精品系列教程,免費(fèi)提供。

靈活

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

強(qiáng)大

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

Mybatis-Flex和同類(lèi)框架對(duì)比

1)功能對(duì)比

2)性能對(duì)比

  • MyBatis-Flex 的查詢(xún)單條數(shù)據(jù)的速度,大概是 MyBatis-Plus 的 5 ~ 10+ 倍。
  • MyBatis-Flex 的查詢(xún) 10 條數(shù)據(jù)的速度,大概是 MyBatis-Plus 的 5~10 倍左右。
  • Mybatis-Flex 的分頁(yè)查詢(xún)速度,大概是 Mybatis-Plus 的 5~10 倍左右。
  • Mybatis-Flex 的數(shù)據(jù)更新速度,大概是 MyBatis-Plus 的 5~10+ 倍。

Mybatis-Flex支持的數(shù)據(jù)庫(kù)類(lèi)型

數(shù)據(jù)庫(kù)描述
mysqlMySQL 數(shù)據(jù)庫(kù)
mariadbMariaDB 數(shù)據(jù)庫(kù)
oracleOracle11g 及以下數(shù)據(jù)庫(kù)
oracle12cOracle12c 及以上數(shù)據(jù)庫(kù)
db2DB2 數(shù)據(jù)庫(kù)
hsqlHSQL 數(shù)據(jù)庫(kù)
sqliteSQLite 數(shù)據(jù)庫(kù)
postgresqlPostgreSQL 數(shù)據(jù)庫(kù)
sqlserver2005SQLServer2005 數(shù)據(jù)庫(kù)
sqlserverSQLServer 數(shù)據(jù)庫(kù)
dm達(dá)夢(mèng)數(shù)據(jù)庫(kù)
xugu虛谷數(shù)據(jù)庫(kù)
kingbasees人大金倉(cāng)數(shù)據(jù)庫(kù)
phoenixPhoenix HBase 數(shù)據(jù)庫(kù)
gaussGauss 數(shù)據(jù)庫(kù)
clickhouseClickHouse 數(shù)據(jù)庫(kù)
gbase南大通用(華庫(kù))數(shù)據(jù)庫(kù)
gbase-8s南大通用數(shù)據(jù)庫(kù) GBase 8s
oscar神通數(shù)據(jù)庫(kù)
sybaseSybase ASE 數(shù)據(jù)庫(kù)
OceanBaseOceanBase 數(shù)據(jù)庫(kù)
FirebirdFirebird 數(shù)據(jù)庫(kù)
derbyDerby 數(shù)據(jù)庫(kù)
highgo瀚高數(shù)據(jù)庫(kù)
cubridCUBRID 數(shù)據(jù)庫(kù)
goldilocksGOLDILOCKS 數(shù)據(jù)庫(kù)
csiidbCSIIDB 數(shù)據(jù)庫(kù)
hanaSAP HANA 數(shù)據(jù)庫(kù)
impalalmpala 數(shù)據(jù)庫(kù)
verticaVertica 數(shù)據(jù)庫(kù)
xcloud行云數(shù)據(jù)庫(kù)
redshift亞馬遜 redshift 數(shù)據(jù)庫(kù)
openGauss華為 openGauss 數(shù)據(jù)庫(kù)
TDengineTDengine 數(shù)據(jù)庫(kù)
informixInformix 數(shù)據(jù)庫(kù)
greenplumGreenplum 數(shù)據(jù)庫(kù)
uxdb優(yōu)炫數(shù)據(jù)庫(kù)

快速開(kāi)始

第 1 步:創(chuàng)建數(shù)據(jù)庫(kù)表

CREATE TABLE IF NOT EXISTS`user_info`
(
    `id`        INTEGER PRIMARY KEY auto_increment,
    `user_name`VARCHAR(100),
    `age`       INTEGER,
    `birthday`  DATETIME
);
INSERTINTO tb_account(id, user_name, age, birthday)
VALUES(1, '張三', 18, '2020-01-11'),
       (2, '李四', 19, '2021-03-21');

第 2 步:創(chuàng)建 Spring Boot 項(xiàng)目,并添加 Maven 依賴(lài)

tips:可以使用 Spring Initializer 快速初始化一個(gè) Spring Boot 工程。

<dependencies>
    <dependency>
        <groupId>com.mybatis-flex</groupId>
        <artifactId>mybatis-flex-spring-boot-starter</artifactId>
        <version>1.5.3</version>
    </dependency>
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

第 3 步:對(duì) Spring Boot 項(xiàng)目進(jìn)行配置

在 application.yml 中配置數(shù)據(jù)源:

# DataSource Config
spring:
  datasource:
    url:jdbc:mysql://localhost:3306/flex_test
    username:root
    password:12345678

在 Spring Boot 啟動(dòng)類(lèi)中添加 @MapperScan 注解,掃描 Mapper 文件夾:

@SpringBootApplication
@MapperScan("com.mybatisflex.test.mapper")
publicclassMybatisFlexTestApplication{
    publicstaticvoidmain(String[] args){
        SpringApplication.run(MybatisFlexTestApplication.class, args);
    }
}

第 4 步:編寫(xiě)實(shí)體類(lèi)和 Mapper 接口

這里使用了 Lombok 來(lái)簡(jiǎn)化代碼。

@Data
@Table("user_info")
public class UserInfo{
    @Id(keyType = KeyType.Auto)
    private Long id;
    private String userName;
    private Integer age;
    private Date birthday;
}
  • 使用 @Table("tb_account") 設(shè)置實(shí)體類(lèi)與表名的映射關(guān)系
  • 使用 @Id(keyType = KeyType.Auto) 標(biāo)識(shí)主鍵為自增

Mapper 接口繼承 BaseMapper 接口:

public interface UserInfoMapperex tends BaseMapper<UserInfo> {
}

這部分也可以使用 MyBatis-Flex 的代碼生成器來(lái)生成。

第 5 步:開(kāi)始使用

添加測(cè)試類(lèi),進(jìn)行功能測(cè)試:

import static com.mybatisflex.test.entity.table.UserInfo;
@SpringBootTest
class MybatisFlexTestApplicationTests{
    @Autowired
    private AccountMapper accountMapper;
    @Test
    voidcontextLoads(){
        QueryWrapper queryWrapper = QueryWrapper.create()
                .select()
                .where(ACCOUNT.AGE.eq(18));
        Account account = accountMapper.selectOneByQuery(queryWrapper);
        System.out.println(account);
    }
}

控制臺(tái)輸出:

UserInfo(id=1, userName=張三, age=18, birthday=Sat Jan 1100:00:00 CST 2020)

上面的示例 中, UserInfo為MyBatis-Flex通過(guò)API自動(dòng)生成,只需通過(guò)靜態(tài)導(dǎo)入即可,無(wú)需手動(dòng)編碼。

整體來(lái)講,這個(gè)框架是Mybatis的增強(qiáng)版,幾乎集成了mybatis plus、jooq、fluent mybatis的所有優(yōu)點(diǎn)。

到此這篇關(guān)于MyBatis Flex全解析的文章就介紹到這了,更多相關(guān)MyBatis Flex詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談Java中return和finally的問(wèn)題

    淺談Java中return和finally的問(wèn)題

    在Java中當(dāng)try、finally語(yǔ)句中包含return語(yǔ)句時(shí),執(zhí)行情況到底是怎樣的,finally中的代碼是否執(zhí)行,大家眾說(shuō)紛紜,有的說(shuō)會(huì)執(zhí)行,有的說(shuō)不會(huì)執(zhí)行,到底哪種說(shuō)法正確,下面我們來(lái)詳細(xì)討論下
    2015-10-10
  • springboot整合RabbitMQ發(fā)送短信的實(shí)現(xiàn)

    springboot整合RabbitMQ發(fā)送短信的實(shí)現(xiàn)

    本文會(huì)和SpringBoot做整合,實(shí)現(xiàn)RabbitMQ發(fā)送短信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Activiti流程文件部署過(guò)程解析

    Activiti流程文件部署過(guò)程解析

    這篇文章主要介紹了Activiti流程文件部署過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • MyBatis實(shí)現(xiàn)樂(lè)觀鎖和悲觀鎖的示例代碼

    MyBatis實(shí)現(xiàn)樂(lè)觀鎖和悲觀鎖的示例代碼

    在數(shù)據(jù)庫(kù)操作中,樂(lè)觀鎖和悲觀鎖是兩種常見(jiàn)的并發(fā)控制策略,本文主要介紹了MyBatis實(shí)現(xiàn)樂(lè)觀鎖和悲觀鎖的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • springboot項(xiàng)目mysql-connector-java默認(rèn)版本如何查看

    springboot項(xiàng)目mysql-connector-java默認(rèn)版本如何查看

    這篇文章主要介紹了springboot項(xiàng)目mysql-connector-java默認(rèn)版本如何查看問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • IDEA安裝阿里巴巴編碼規(guī)范插件的兩種方式詳解(在線安裝和離線安裝)

    IDEA安裝阿里巴巴編碼規(guī)范插件的兩種方式詳解(在線安裝和離線安裝)

    這篇文章主要介紹了IDEA安裝阿里巴巴編碼規(guī)范插件的兩種方式詳解(在線安裝和離線安裝),本文通過(guò)截圖給大家展示的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • Spring Shell開(kāi)發(fā)自定義命令行工具詳解

    Spring Shell開(kāi)發(fā)自定義命令行工具詳解

    Spring Shell是Spring生態(tài)系統(tǒng)中的一個(gè)強(qiáng)大組件,它允許開(kāi)發(fā)者輕松創(chuàng)建功能豐富的命令行,本文將介紹如何在Spring Boot項(xiàng)目中集成和使用Spring Shell,開(kāi)發(fā)自定義命令,需要的可以了解下
    2025-07-07
  • 全面理解java中的構(gòu)造方法以及this關(guān)鍵字的用法

    全面理解java中的構(gòu)造方法以及this關(guān)鍵字的用法

    本篇文章主要概述了如何用構(gòu)造方法初始化對(duì)象,this屬性名訪問(wèn)成員變量方法,和this()的用法,感興趣的小伙伴一起來(lái)學(xué)習(xí)吧
    2023-03-03
  • java 中newInstance()方法和new關(guān)鍵字的區(qū)別

    java 中newInstance()方法和new關(guān)鍵字的區(qū)別

    這篇文章主要介紹了java 中newInstance()方法和new關(guān)鍵字的區(qū)別的相關(guān)資料,希望通過(guò)本文大家能掌握他們之家的區(qū)別與用法,需要的朋友可以參考下
    2017-09-09
  • java加載properties文件的六種方法總結(jié)

    java加載properties文件的六種方法總結(jié)

    這篇文章主要介紹了java加載properties文件的六種方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05

最新評(píng)論

民乐县| 宜川县| 务川| 冷水江市| 衡阳县| 长子县| 新安县| 固始县| 广宁县| 威信县| 申扎县| 蓝山县| 浦县| 盈江县| 五华县| 顺昌县| 茶陵县| 抚松县| 子洲县| 咸丰县| 阿尔山市| 永嘉县| 泰来县| 翁牛特旗| 延川县| 利辛县| 南投县| 绥德县| 义乌市| 漳浦县| 聂荣县| 阿拉善左旗| 牙克石市| 阿坝县| 徐水县| 开封市| 雷波县| 浦东新区| 江安县| 玛纳斯县| 溆浦县|