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

基于SpringBoot整合SSMP案例(開啟日志與分頁查詢條件查詢功能實現(xiàn))

 更新時間:2023年11月14日 09:49:35   作者:一只呆小白  
這篇文章主要介紹了基于SpringBoot整合SSMP案例(開啟日志與分頁查詢條件查詢功能實現(xiàn)),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋參考下吧

開啟事務(wù)

導(dǎo)入Mybatis-Plus框架后,我們可以使用Mybatis-Plus自帶的事務(wù),只需要在配置文件中配置即可
使用配置方式開啟日志,設(shè)置日志輸出方式為標準輸出

mybatis-plus:
  global-config:
    db-config:
      table-prefix: tb_
      id-type: auto
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

只有最后一行有用

數(shù)據(jù)層開發(fā)-分頁功能

分頁操作需要設(shè)定分頁對象IPage,Page第一個參數(shù)當前頁碼值,第二個是每一頁中條數(shù)

@Test
    void testPage(){
        IPage page = new Page(2,2);
        bookDao.selectPage(page,null);
        System.out.println(page.getRecords());
    }

IPage對象中封裝了分頁操作中的所有數(shù)據(jù)
     數(shù)據(jù)
     當前頁碼值
     每頁數(shù)據(jù)總量
     最大頁碼值
     數(shù)據(jù)總量

這樣就直接實現(xiàn)分頁了嗎?
答案是否定的

分頁操作是在MyBatisPlus的常規(guī)操作基礎(chǔ)上增強得到,內(nèi)部是動態(tài)的拼寫SQL語句,
因此需要增強對應(yīng)的功能,使用MyBatisPlus攔截器實現(xiàn)

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

執(zhí)行測試代碼

@Test
    void testPage(){
        IPage page = new Page(1,2);
        bookDao.selectPage(page,null);
        System.out.println(page.getRecords());
    }

可以看出執(zhí)行了兩次查詢,第一次執(zhí)行的查詢獲取了總條數(shù),為下面的分頁做準備

數(shù)據(jù)層開發(fā)-條件查詢功能

上面的分頁查詢中 bookDao.selectPage(page,null);
第二個參數(shù)賦成null,你可能好奇它的功能是什么,那里是用來放條件對象QueryWrapper的。

QueryWrapper解析
QueryWrapper 是 MyBatis-Plus 的一個核心功能,它是用來構(gòu)造 SQL 查詢語句的。MyBatis-Plus 是一款 MyBatis 的增強工具,在 MyBatis 的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生。
QueryWrapper 主要提供了以下幾個功能:
鏈式調(diào)用: QueryWrapper 支持鏈式調(diào)用,使得代碼更加簡潔易讀。
條件構(gòu)造器: QueryWrapper 提供了豐富的條件構(gòu)造方法,如 eq (等于)、ne (不等于)、gt (大于)、ge (大于等于)、lt (小于)、le (小于等于) 等。
SQL函數(shù)支持: QueryWrapper 支持 SQL 函數(shù),比如 count、sum、avg 等。
子查詢支持: QueryWrapper 支持子查詢,可以在查詢條件中嵌套子查詢。
排序支持: QueryWrapper 支持 orderBy 方法進行排序。

下面是一個事例

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "張三")
            .ne("age", 20)
            .like("email", "test")
            .orderByAsc("age");

等價于SQL語句

SELECT * FROM user WHERE name = '張三' AND age != 20 AND email LIKE '%test%' ORDER BY age ASC;

了解完基礎(chǔ)知識點,下面是實際使用

@Test
    void testGetBy(){
        QueryWrapper<Book> queryWrapper = new QueryWrapper<>();
        queryWrapper.like("name","Spring");
        List list = bookDao.selectList(queryWrapper);
    }

執(zhí)行結(jié)果

缺點:有的時候我們可能會打錯,比如將name打成了nmae,有沒有什么可以解決呢?有LambdaQueryWrapper。

LambdaQueryWrapper 是 MyBatis-Plus 提供的一個查詢條件構(gòu)造器,它是 QueryWrapper 的一個變種,主要使用 Java 8 的 Lambda 表達式語法。
LambdaQueryWrapper 提供了與 QueryWrapper 類似的功能,包括鏈式調(diào)用、條件構(gòu)造器、SQL函數(shù)支持、子查詢支持、排序支持等。
相比于 QueryWrapper,LambdaQueryWrapper 的主要優(yōu)點在于:
類型安全:LambdaQueryWrapper 使用了 Java 8 的 Lambda 表達式,使得其具有類型安全的特性。你可以在編譯時檢查到類型錯誤,而 QueryWrapper 在編譯時無法檢查到類型錯誤,只能在運行時通過拋出異常來發(fā)現(xiàn)錯誤。
代碼可讀性更強:由于使用了 Lambda 表達式,LambdaQueryWrapper 的代碼可讀性更強。你可以直接看到正在操作的是哪個字段,而不需要通過字符串來指定字段名,這樣也避免了因為字段名拼寫錯誤導(dǎo)致的問題。

例如,我們可以使用 LambdaQueryWrapper 構(gòu)造如下的查詢語句:

LambdaQueryWrapper<User> lambdaQuery = new QueryWrapper<User>().lambda();
lambdaQuery.eq(User::getName, "張三")
           .ne(User::getAge, 20)
           .like(User::getEmail, "test")
           .orderByAsc(User::getAge);

等價于SQL語句

SELECT * FROM user WHERE name = '張三' AND age != 20 AND email LIKE '%test%' ORDER BY age ASC;

User::getName 表示字段名是 "name",其他的類推,這樣我們就不會因為因為不小心而出錯了。
實戰(zhàn)如下

@Test
    void testGetBy2(){
        LambdaQueryWrapper<Book> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.like(Book::getName,"Spring");
        List list = bookDao.selectList(queryWrapper);
    }

執(zhí)行結(jié)果如下

到此這篇關(guān)于基于SpringBoot的SSMP整合案例(開啟日志與分頁查詢條件查詢功能實現(xiàn))的文章就介紹到這了,更多相關(guān)SpringBoot整合SSMP內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java解決雪花ID在前端精度丟失問題

    java解決雪花ID在前端精度丟失問題

    雪花算法生成的64位Long類型ID在傳遞到前端時可能會因JavaScript的精度限制導(dǎo)致精度丟失,這篇文章主要介紹了java解決雪花ID在前端精度丟失問題的相關(guān)資料,需要的朋友可以參考下
    2024-11-11
  • Java SpringBoot攔截器詳解

    Java SpringBoot攔截器詳解

    這篇文章主要介紹了Java SpringBoot攔截器的使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2021-10-10
  • Java2 JDK安裝和配置教程

    Java2 JDK安裝和配置教程

    這篇文章主要為大家詳細介紹了Java2 JDK安裝和配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • mybatis-plus之如何實現(xiàn)in嵌套sql

    mybatis-plus之如何實現(xiàn)in嵌套sql

    這篇文章主要介紹了mybatis-plus之如何實現(xiàn)in嵌套sql問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • RabbitMQ的Direct Exchange模式實現(xiàn)的消息發(fā)布案例(示例代碼)

    RabbitMQ的Direct Exchange模式實現(xiàn)的消息發(fā)布案例(示例代碼)

    本文介紹了RabbitMQ的DirectExchange模式下的消息發(fā)布和消費的實現(xiàn),詳細說明了如何在DirectExchange模式中進行消息的發(fā)送和接收,以及消息處理的基本方法,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • 解決java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver報錯問題

    解決java.lang.ClassNotFoundException: com.mysql.cj.jdbc.D

    這篇文章主要介紹了解決java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java的四種常用輸入方法你會幾種

    java的四種常用輸入方法你會幾種

    這篇文章主要介紹了java四種常用輸入方法的相關(guān)資料,分別是Scanner、System、命令行和JOptionPane,每種方法都有其特點和適用場景,文中提供了詳細的代碼示例,需要的朋友可以參考下
    2025-03-03
  • JAVA對字符串進行32位MD5加密的實踐

    JAVA對字符串進行32位MD5加密的實踐

    本文主要介紹了JAVA對字符串進行32位MD5加密的實踐,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2022-08-08
  • springboot?log4j2日志框架整合與使用過程解析

    springboot?log4j2日志框架整合與使用過程解析

    這篇文章主要介紹了springboot?log4j2日志框架整合與使用,包括引入maven依賴和添加配置文件log4j2-spring.xml的相關(guān)知識,需要的朋友可以參考下
    2022-05-05
  • Java Web開發(fā)之基于Session的購物商店實現(xiàn)方法

    Java Web開發(fā)之基于Session的購物商店實現(xiàn)方法

    這篇文章主要介紹了Java Web開發(fā)之基于Session的購物商店實現(xiàn)方法,涉及Java針對session的操作及數(shù)據(jù)庫操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10

最新評論

天祝| 贡觉县| 富阳市| 陆川县| 衡水市| 平远县| 师宗县| 恭城| 兰州市| 兴仁县| 平果县| 昌邑市| 仙游县| 尖扎县| 腾冲县| 茶陵县| 浦东新区| 通化市| 万荣县| 凤庆县| 梁山县| 清水河县| 玉门市| 辉县市| 阿拉尔市| 鹤峰县| 安塞县| 宿州市| 若尔盖县| 洛阳市| 临桂县| 合水县| 河北省| 黄梅县| 拉萨市| 承德市| 佳木斯市| 安丘市| 剑阁县| 高邑县| 磴口县|