精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

你還在用Mybatis?試試這款神器,縱享絲滑

開發 項目管理
Fluent Mybatis 是一個基于 Mybatis 的擴展庫,它提供了更加簡潔、易讀的 API,使得我們能夠更加高效地進行數據庫操作。 本文將介紹如何使用 Fluent Mybatis 進行基本的增刪改查操作。

在 Java 項目中,我們經常需要與數據庫進行交互,而 Mybatis 是一個流行的持久層框架,它可以將 Java 對象映射到 SQL 語句,從而簡化數據庫操作。

不過在使用  Mybatis 做開發時,最頭痛的事情就是處理復雜業務查詢,如果將業務轉移到service層,就會增加訪問數據庫的次數。

如果放到dao層,就要手動在xml中寫復雜的sql,用插件自動生成mapper時,會覆蓋xml中的修改,非常讓人頭疼

Fluent Mybatis是什么

Fluent Mybatis 是一個基于 Mybatis 的擴展庫,它提供了更加簡潔、易讀的 API,使得我們能夠更加高效地進行數據庫操作。

本文將介紹如何使用 Fluent Mybatis 進行基本的增刪改查操作。

使用 Fluent Mybatis 很簡單,分為以下5步:

1. 環境準備

在開始使用 Fluent Mybatis 之前,我們需要確保已經安裝了 Java 開發環境、Maven 以及 MySQL 數據庫。接下來,我們需要在項目的 pom.xml 文件中添加 Fluent Mybatis 的依賴:

<dependencies>
<!--引入fluent-mybatis運行依賴包,scope為compile-->
        <dependency>
            <groupId>com.github.atool</groupId>
            <artifactId>fluent-mybatis</artifactId>
            <version>1.9.3</version>
        </dependency>
        <!--引入fluent-mybatis-processor,scope設置為provider編譯需要,運行時不需要-->
        <dependency>
            <groupId>com.github.atool</groupId>
            <artifactId>fluent-mybatis-processor</artifactId>
            <version>1.9.3</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
            <version>2.6.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>
</dependencies>

2. 定義表結構

CREATE TABLE `user_info` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `user_name` varchar(64) DEFAULT NULL COMMENT '用戶名稱',
  `user_age` int NOT NULL DEFAULT '0' COMMENT '用戶年齡',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用戶信息表';

3. 定義PO類

@FluentMybatis(table = "user_info") // 定義表名稱
@Data
public class UserInfoEntity extends RichEntity {

    private Long id;

    private String userName;

    private Integer userAge;

    @Override
    public Class<? extends IEntity> entityClass() {
        return UserInfoEntity.class;
    }
}

4. 編譯生成對應的mapper類

mvn clean compile

自動生成如下類:

圖片圖片

5. 配置數據源

首先,我們需要配置 Mybatis 的相關信息,如數據源、SQL 會話工廠等。這里,我們使用 Spring Boot 進行配置:

@ComponentScan(basePackages = "com.test")
@MapperScan("com.test.mapper")
@Configuration
public class DataSourceConfig {

    @Bean
    public DataSource dataSource() {
        final HikariDataSource dataSource = new HikariDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("1234");
        return dataSource;
    }

    /**
     * 定義mybatis的SqlSessionFactoryBean
     *
     * @param dataSource
     * @return
     */
    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        return bean;
    }

    @Bean
    public MapperFactory mapperFactory() {
        return new MapperFactory();
    }
}

如何使用 Fluent Mybatis?

下面我們使用 Fluent Mybatis 進行增刪改查的基本操作演示:

4.1 插入(Insert)

public class UserServiceTest {

    @Autowired
    private UserInfoMapper mapper;
    
    @Test
    public void insert() {
        UserInfoEntity entity = new UserInfoEntity();
        entity.setUserAge(10);
        entity.setUserName("zhangsan");
        mapper.insert(entity);
    }
}

在這個示例中,我們首先創建了一個新的 UserInfoEntity 對象,并設置了其 userName 和 userAge 屬性。然后,我們調用 UserInfoMapper.insert(entity) 方法將新用戶插入到數據庫中。

4.2 查詢(Select)

public class UserService {
    @Autowired
    private UserInfoMapper mapper;
    
    @Test
    public void select() {
        UserInfoEntity entity = mapper.findOne(mapper.query()
                .where.userName().like("zhangsan").end()
                .limit(1));
        System.out.println(entity);
    }

在這個示例中,我們展示了如何使用 Fluent Mybatis 進行不同類型的查詢操作。我們可以根據用戶名模糊查詢用戶。

4.3 更新(Update)

public class UserService {
    @Autowired
    private UserInfoMapper mapper;

    @Test
    public void update() {
        mapper.updateBy(mapper.updater()
                .set.userName().is("lisi")
                .set.userAge().is(20).end()
                .where.id().eq(1L).end()
        );
    }
}

在這個示例中,我們首先根據 ID 查詢到需要更新的用戶。然后,我們修改用戶的 name 和 age 屬性,并調用 UserMapper.updateBy() 方法將更新后的用戶信息保存到數據庫中。

4.4 刪除(Delete)

public class UserService {
    @Autowired
    private UserInfoMapper mapper;

    @Test
    public void delete() {
        mapper.delete(mapper.query()
                .where.id().eq(1L).end());
    }
}

在這個示例中,我們展示了如何使用 Fluent Mybatis 進行刪除操作。我們可以根據 ID 刪除用戶。

4.5 join查詢

@Test
    public void joinQuery() {
        JoinBuilder<FreeQuery> joinBuilder = null;
        UserInfoQuery leftQuery = UserInfoQuery.query().selectAll();
        UserInfoQuery rightQuery = UserInfoQuery.query().select.id("right_id").end(); // 添加別名
        joinBuilder = JoinBuilder.from(leftQuery).join(rightQuery).onEq("id", "id").endJoin().build(); // join條件
        FreeQuery iQuery = new FreeQuery(joinBuilder.build(), "sub").select("id", "user_name", "user_age"); // 輸出查詢字段

        List<UserInfoEntity> userInfoEntities = mapper.listPoJos(UserInfoEntity.class, iQuery);
        System.out.println(userInfoEntities);
    }

在這個示例中,我們展示了如何使用 Fluent Mybatis 進行join查詢操作。我們將表user_info自身進行join,以id作為連接條件。

總結

通過以上示例,我們可以看到 Fluent Mybatis 提供了一套簡潔、易讀的 API,使得我們能夠更加高效地進行數據庫操作。同時,它還支持鏈式編程,讓代碼更加簡潔。如果你正在使用 Mybatis 進行數據庫操作,那么不妨嘗試一下 Fluent Mybatis,它或許會給你帶來更好的開發體驗。

責任編輯:武曉燕 來源: 小李哥編程
相關推薦

2021-01-18 18:42:33

工具調優開發

2022-03-18 13:59:46

緩存RedisCaffeine

2022-12-20 09:09:27

ViteWebpack

2023-09-07 07:35:59

JS操作網頁

2025-10-28 01:45:00

setTimeouAPI日志

2012-07-19 10:03:32

2025-06-25 08:10:00

screentmux運維

2024-11-12 16:28:34

2023-08-01 07:45:52

2021-11-19 11:50:48

MyBatisforeachJava

2020-03-04 14:05:35

戴爾

2025-04-02 08:47:23

DOM文檔結構API

2025-07-29 08:05:37

2022-07-15 07:58:18

SteampipeCLI 工具

2023-01-05 07:55:59

Zookeeper服務注冊

2023-09-27 07:49:23

2024-03-21 08:55:41

享元模式對象內存

2023-02-01 10:40:01

2020-05-14 13:35:59

開源視頻 技術
點贊
收藏

51CTO技術棧公眾號

熟妇人妻久久中文字幕| 亚洲午夜精品国产| 午夜影院免费在线观看| 中文字幕中文字幕精品| 欧洲一区二区三区在线| 亚洲人成77777| 亚洲精品久久久久久动漫器材一区| 国产一区二区中文| 国产亚洲欧美日韩一区二区| 97人人爽人人| 深夜在线视频| 亚洲视频免费观看| 精品欧美国产一区二区三区不卡| 最近中文字幕在线视频| 狠狠入ady亚洲精品| 国产一区二区成人| youjizz.com国产| 久久精品97| 五月婷婷激情综合| 一区二区三区视频| 偷拍自拍在线| 国产超碰在线一区| 国产精品久久婷婷六月丁香| 国产亚洲精品久久777777| 国产一区毛片| 亚洲福利在线播放| 波多野结衣电影免费观看| 欧美成人ⅴideosxxxxx| 亚洲午夜精品网| 日本黄色播放器| 国产午夜精品一区理论片| 国产成人av福利| 成人情趣片在线观看免费| 国产剧情在线视频| 亚洲看片一区| 欧美乱大交xxxxx另类电影| 免费一级特黄3大片视频| 精品久久ai| 精品三级av在线| 国产精品探花在线播放| 免费高清视频在线一区| 欧美性极品xxxx娇小| 免费网站永久免费观看| 黄色片免费在线观看| 国产欧美日韩激情| 欧美一级二级三级九九九| 亚洲精品网站在线| 国产成人日日夜夜| 91久久精品一区二区别| 国产精品久久久久久久久毛片 | 欧美 日韩 国产 在线观看| 亚洲人成色777777精品音频| 成人国产在线观看| 国产精品久久久久久免费观看 | 精品欧美一区二区久久| 99re6在线观看| 九九久久国产| 欧美久久久久久久久中文字幕| 天天影视综合色| 日韩高清成人| 欧美日韩情趣电影| 不用播放器的免费av| 不卡一区视频| 日韩你懂的在线播放| 欧美色图校园春色| 成人福利一区| 日韩精品日韩在线观看| 中文字幕免费看| 精品国产乱码久久久久久1区2匹| 亚洲性线免费观看视频成熟| 黄色片网站免费| 欧美xxav| 色综合久久久久久中文网| 久热这里只有精品在线| 亚洲国产精品一区| 欧美在线影院在线视频| 国产免费一级视频| 久久狠狠亚洲综合| 99精品欧美一区二区三区| www国产一区| 99久精品国产| 日韩激情视频| 黄视频网站在线看| 亚洲大片一区二区三区| 看av免费毛片手机播放| 欧美精品高清| 欧美一区二区在线免费播放| 人妻精油按摩bd高清中文字幕| 懂色av一区二区| 亚洲色图日韩av| 在线免费观看亚洲视频| 亚洲青色在线| 国产一区玩具在线观看| 亚洲高清视频在线播放| 久久午夜羞羞影院免费观看| 特级西西444www大精品视频| 大片免费在线观看| 精品免费在线视频| 9久久婷婷国产综合精品性色 | 午夜视频在线看| 亚洲综合一二三区| 色哟哟精品视频| 国产精品色在线网站| 亚洲欧美色婷婷| 91久久国产综合| 欧美亚洲专区| 91久久久一线二线三线品牌| 久久这里精品| 亚洲一区在线观看网站| 天美星空大象mv在线观看视频| 奇米一区二区| 中文日韩电影网站| 九一国产在线观看| 国产成人午夜99999| 日韩免费电影一区二区三区| 日本高清成人vr专区| 欧美在线制服丝袜| 自拍视频一区二区| 午夜久久黄色| 成人春色激情网| 久久视频www| 午夜电影一区二区三区| gai在线观看免费高清| 亚洲区小说区图片区qvod按摩 | 麻豆久久久9性大片| 99福利在线| 欧美日韩欧美一区二区| 亚洲熟妇一区二区三区| 宅男噜噜噜66一区二区| 成人高清在线观看| 精精国产xxxx视频在线| 91搞黄在线观看| 精品人妻一区二区三区日产乱码卜| 亚洲成av人电影| 国产精品亚洲一区二区三区| 亚洲区小说区图片区| 亚洲成人在线网站| 少妇熟女视频一区二区三区 | av电影天堂一区二区在线| 国产精品99久久久久久大便| 国产成人精品一区二区三区视频| 亚洲男女性事视频| 99精品在线播放| 波多野结衣中文字幕一区| 波多野结衣av一区二区全免费观看| 日韩午夜电影免费看| 中文日韩电影网站| 中文字幕在线播放不卡| 久久精品男人的天堂| 日韩欧美精品在线观看视频| 国产成人精品亚洲线观看| 欧美疯狂xxxx大交乱88av| 国产情侣激情自拍| 亚洲欧美一区二区三区久本道91| 中文字幕精品一区二区三区在线| 日韩伦理一区| 91九色视频在线| 国产精品扒开做爽爽爽的视频 | 妺妺窝人体色www在线观看| 日韩在线你懂的| 日韩av手机在线看| 91在线高清| 欧美群妇大交群的观看方式| 久久久久麻豆v国产| 精品一区二区av| 日本xxxxx18| 亚洲精品高潮| 91av福利视频| 黄视频在线播放| 欧美日韩亚洲另类| 久久免费播放视频| 97久久精品人人做人人爽| 国产极品粉嫩福利姬萌白酱| 久久91精品| 国产一区二区色| 色呦呦在线看| 日韩电影免费观看在线观看| 无码人妻精品一区二区三区蜜桃91| 日本一区二区三区在线不卡| 不卡中文字幕在线观看| 国产主播精品| 欧美性xxxx69| 国产日韩欧美中文在线| 久久人人爽国产| 国产日本在线| 欧美一级夜夜爽| 欧美h在线观看| 中文字幕一区二区三区精华液 | 精品成人av一区二区在线播放| 国产欧美一区二区三区鸳鸯浴| 99精品视频国产| 日韩视频一区二区三区在线播放免费观看 | 亚洲欧洲国产精品久久| 精品国产第一国产综合精品| 97视频在线观看成人| lutube成人福利在线观看| 69久久99精品久久久久婷婷| 国产极品美女高潮无套嗷嗷叫酒店| 国产亚洲一区二区三区| 亚洲三级在线视频| 丝袜亚洲另类欧美综合| 喜爱夜蒲2在线| 欧美日韩精品一区二区视频| 亚洲xxxx3d| **欧美日韩在线观看| 色综合久久久888| av大片在线观看| 亚洲精品xxxx| 精品毛片一区二区三区| 91国产精品成人| 国产成人无码一区二区三区在线| 国产精品美女久久福利网站| 少妇精品无码一区二区三区| 国产综合色在线视频区| 韩国日本在线视频| 红桃视频国产一区| 自拍偷拍99| 国产一区二区三区站长工具| 成人情视频高清免费观看电影| 日本国产一区| 国产精品激情av在线播放| 高清在线视频不卡| 九九精品视频在线观看| 91网在线播放| 尤物精品国产第一福利三区| 无码精品人妻一区二区| 日韩欧美一卡二卡| 国产精品欧美亚洲| 欧美日韩一区二区三区视频| 久久精品视频5| 五月天亚洲精品| 日韩欧美国产亚洲| 一级精品视频在线观看宜春院| 午夜激情视频在线播放| 久久精品一区二区三区四区| 亚洲欧美色图视频| 99免费精品在线| 超碰caoprom| 国v精品久久久网| 美女被爆操网站| 国产乱人伦偷精品视频免下载 | 国产手机在线视频| 亚洲线精品一区二区三区| 538精品在线视频| 亚洲同性gay激情无套| 毛片视频免费播放| 国产精品天美传媒| 少妇高潮惨叫久久久久| 欧美国产精品专区| 99自拍偷拍视频| 国产精品国产三级国产| 国精产品一区一区| 专区另类欧美日韩| 青青青在线免费观看| 一区二区三区欧美视频| 久久亚洲AV无码| 亚洲高清免费视频| 国产一级做a爱片久久毛片a| 色综合一个色综合亚洲| 手机av免费观看| 欧美日韩精品一区二区| 国产一区二区三区成人| 欧美一区二区三区视频免费播放| 精品国产99久久久久久宅男i| 欧美一区二区三区男人的天堂| www.久久久久久| 精品国产一区a| 亚洲欧美日韩精品永久在线| 精品视频在线观看日韩| 高清性色生活片在线观看| 色999日韩欧美国产| 成人免费观看视频大全| 九九久久久久久久久激情| 丁香花电影在线观看完整版| 26uuu另类亚洲欧美日本一| 久久野战av| 91香蕉国产在线观看| 成人台湾亚洲精品一区二区 | 亚洲精品无amm毛片| 精品视频久久久久久久| a√在线中文网新版址在线| 久久亚洲精品一区二区| 四虎影院观看视频在线观看 | 黑人一区二区三区| 97人人模人人爽人人喊38tv| 欧美午夜18电影| 亚洲视频导航| 伊人久久大香线蕉综合热线| 成人久久久久久久久| 国产美女娇喘av呻吟久久| 一二三不卡视频| 成人免费视频在线观看| 国产视频91在线| 欧美另类z0zxhd电影| 三级在线观看网站| 久久精品中文字幕免费mv| 久久av色综合| 国产欧美日韩精品在线观看 | 日韩精品综合一本久道在线视频| 肉丝一区二区| 麻豆国产va免费精品高清在线| 极品av在线| 成人黄色av网站| 亚洲精品aaaaa| 国产日韩欧美大片| 日日夜夜精品视频天天综合网| 日本黄色www| 中文字幕精品三区| 日日噜噜噜噜人人爽亚洲精品| 欧美顶级少妇做爰| 国产精品一区二区三区四区色| 欧美裸体xxxx极品少妇| 天然素人一区二区视频| 国产手机精品在线| 中国成人一区| 亚洲男人天堂色| 菠萝蜜视频在线观看一区| 国产福利视频网站| 在线视频国产一区| 五月天婷婷激情网| 欧美激情亚洲精品| 不卡一区视频| 中文字幕一区二区三区在线乱码| 久久xxxx| 精品夜夜澡人妻无码av| 亚洲国产成人porn| 亚洲精品国产一区二| 久久视频精品在线| 青青草国产一区二区三区| 日韩美女一区| 日韩av电影天堂| 麻豆精品免费视频| 欧美日韩精品国产| 男人的天堂a在线| 欧美精品videofree1080p| 精品99re| 国产精品无码电影在线观看| 麻豆成人av在线| 中文字幕在线观看二区| 在线观看免费一区| 浮生影视网在线观看免费| 日本伊人精品一区二区三区介绍| 青青草久久爱| 男人和女人啪啪网站| 99久久国产综合色|国产精品| 久久精品视频6| 亚洲国产精品va在看黑人| 暖暖在线中文免费日本| 高清国语自产拍免费一区二区三区| 在线一区免费| 日本精品一二三区| 婷婷丁香久久五月婷婷| 图片区 小说区 区 亚洲五月| 午夜精品福利在线观看| 精品在线网站观看| 国产日产欧美视频| 久久久精品国产99久久精品芒果| 欧美性猛交bbbbb精品| 亚洲午夜精品久久久久久久久久久久| 丝袜美腿诱惑一区二区三区| 日韩高清在线播放| 热久久国产精品| 国产美女福利视频| 欧美xxxxxxxx| 黄色视屏在线免费观看| 欧美日韩精品中文字幕一区二区| 日产欧产美韩系列久久99| jizz18女人高潮| 欧美一级电影网站| a级片在线免费观看| 欧美一级爽aaaaa大片| 日本va欧美va精品发布| 杨钰莹一级淫片aaaaaa播放| 欧美成人video| 亚洲人体视频| 亚洲一区二区精品在线| 国产一区二区三区综合| 国产一级在线播放| 亚洲色图35p| 国产一区二区三区视频在线| 欧美一级中文字幕| 91免费视频网| 国产一区二区三区四区视频| 欧美日韩国产第一页| 免费一区二区三区视频导航| 色戒在线免费观看| 亚洲国产成人av| 成人福利在线| 操一操视频一区| 日韩专区一卡二卡| 日本老熟俱乐部h0930| 精品视频久久久久久久| 国产成人免费av一区二区午夜 | 先锋亚洲精品| 日韩福利小视频| 亚洲精品视频中文字幕| 国产亚洲精aa在线看| 国产日韩一区二区在线观看| 亚洲免费资源在线播放| 神马久久高清|