国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mybatis-Plus學(xué)習4 Page分頁

這篇具有很好參考價值的文章主要介紹了Mybatis-Plus學(xué)習4 Page分頁。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

ctrl + P = 查看可填的屬性類型?

alt + 回車 = 自動填充數(shù)據(jù)類型

1、使用Page分頁需要先配置config類,加上攔截器

@Configuration
@MapperScan("com/learn/mybatisplus/mapper")
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

}
    @Test
    public void testPage() {

        Page<User> page = new Page<>(2, 3);
        userMapper.selectPage(page, null);
        //SELECT id,age,name,email,is_deleted FROM user WHERE is_deleted=0 LIMIT ?
        // 獲取當前分頁的內(nèi)容
        System.out.println("1:"+page.getRecords());
        // 獲取總頁數(shù)
        System.out.println("2:"+page.getPages());
        // 獲取總記錄數(shù)
        System.out.println("3:"+page.getTotal());
        // 是否有下一頁
        System.out.println("4:"+page.hasNext());
        // 是否有上一頁
        System.out.println("5:"+page.hasPrevious());
    }

type-aliasys-package配置pojo對象別名對應(yīng)的包

自定義的Mapper的page查詢:

    /**
     * 通過年齡信息查詢并分頁
     * @param page mybatis-plus提供的封裝好的屬性,必須放在第一個位置
     * @param age
     * @return
     */
    Page<User> selectPageVo(@Param("page") Page<User> page, @Param("age") Integer age);


    <select id="selectPageVo" resultType="com.learn.mybatisplus.pojo.User">
        select id, name, age, email from user where age > #{age}
    </select>


        Page<User> page = new Page<>(1, 3);
        userMapper.selectPageVo(page, 20);
        //select id, name, age, email from user where age > ? LIMIT ?

樂觀鎖 和 悲觀鎖

悲觀鎖:
悲觀鎖的思想是,在操作數(shù)據(jù)之前,先假設(shè)其他并發(fā)操作會對數(shù)據(jù)進行修改,因此悲觀鎖會在對數(shù)據(jù)進行操作前,將其鎖定,確保其他操作無法訪問該數(shù)據(jù),直到當前操作完成。

一個常見的悲觀鎖的例子是數(shù)據(jù)庫中的行級鎖。當多個事務(wù)對數(shù)據(jù)庫中的同一行數(shù)據(jù)進行并發(fā)操作時,悲觀鎖會將該數(shù)據(jù)行鎖定,以防止其他事務(wù)修改該數(shù)據(jù)。只有當當前事務(wù)完成后,其他事務(wù)才能獲取到該行數(shù)據(jù)的鎖并執(zhí)行相應(yīng)的操作。

樂觀鎖:
樂觀鎖的思想是,假設(shè)在數(shù)據(jù)的操作過程中不會有其他事務(wù)對數(shù)據(jù)進行修改,因此樂觀鎖不會顯式地進行鎖定操作。相反,它會在操作完成時進行檢查以確保數(shù)據(jù)的一致性。

一個常見的樂觀鎖的例子是使用版本號(或者時間戳)來實現(xiàn)并發(fā)控制。每個數(shù)據(jù)記錄都有一個版本號,當執(zhí)行更新操作時,樂觀鎖會比較當前數(shù)據(jù)的版本號是否與執(zhí)行更新操作之前的版本號一致。如果一致,說明期間沒有其他操作對數(shù)據(jù)進行修改,更新可以繼續(xù)執(zhí)行;如果不一致,說明期間有其他操作對數(shù)據(jù)進行了修改,更新操作可能會被中斷或者重新執(zhí)行。

Mybatis-Plus學(xué)習4 Page分頁,mybatis,學(xué)習,android

Mybatis-Plus插件實現(xiàn)樂觀鎖:

public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

        // 添加分頁插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));

        // 添加樂觀鎖插件
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }

}

加上@Version注解,標識版本號

@Data
@TableName("t_product")
public class Product {

    private Long id;
    private String name;
    private Integer price;
    @Version
    private Integer version;
}
    @Test
    public void testProduct01() {
        // 小李查詢商品價格
        Product productLi = productMapper.selectById(1);
        System.out.println("小李查詢的商品價格" + productLi.getPrice());
        Product productWang = productMapper.selectById(1);
        System.out.println("小王查詢的商品價格" + productLi.getPrice());

        // 小李將商品價格加50
        productLi.setPrice(productLi.getPrice() + 50);
        productMapper.updateById(productLi);
        // 小王將商品價格減50
        productWang.setPrice(productWang.getPrice() - 30);
        int result = productMapper.updateById(productWang);
        if (result == 0) {
            Product productNew = productMapper.selectById(1);
            productNew.setPrice(productNew.getPrice() - 30);
            productMapper.updateById(productNew);
        }

        // 老板查詢商品價格
        Product productBoss = productMapper.selectById(1);
        System.out.println("老板查詢的商品價格" + productBoss.getPrice());

    }

枚舉,@EnumValue 將注解標注的值保存到數(shù)據(jù)庫文章來源地址http://www.zghlxwxcb.cn/news/detail-518702.html

@Getter
public enum SexEnum {

    MALE(1, "男"),
    FAMALE(2, "女");

    @EnumValue // 將注解標注的值保存到數(shù)據(jù)庫
    private Integer sex;
    private String sexName;

    SexEnum(Integer sex, String sexName) {
        this.sex = sex;
        this.sexName = sexName;
    }
}
@TableName("user")
public class User {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("age")
    private Integer age;

    @TableField("name")
    private String name;

    @TableField("email")
    private String email;

    @TableField("is_deleted")
    @TableLogic
    private Integer isDeleted;

    private SexEnum sex;

}
    @Test
    public void test() {
        User user = new User();
        user.setName("admin");
        user.setAge(33);
        user.setSex(SexEnum.MALE);
        int result = userMapper.insert(user);
        System.out.println("result = " + result);
    }

到了這里,關(guān)于Mybatis-Plus學(xué)習4 Page分頁的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Mybatis-Plus手動分頁

    ?TableDataInfo ?serviceImpl.selectPageQueryUserList

    2024年02月11日
    瀏覽(17)
  • 關(guān)于mybatis-plus中Ipage 、page 和pageUtils中的區(qū)別

    ? ? ?在使用人人開源框架的時候,通過逆向工程自動生成了分頁功能,然而在使用的時候經(jīng)常被關(guān)于Ipage和page等對象搞混,所以記錄這篇文章用來介紹之間的區(qū)別 可以看見上面就是逆向工程幫忙生成的分頁方法 里面出現(xiàn)了三個對象 pageUtils、page和Ipage 先來將pageUtils吧,pag

    2024年02月04日
    瀏覽(25)
  • SpringBoot+Mybatis-Plus+Thymeleaf+Bootstrap分頁查詢(前后端完整版開源學(xué)習)圖書管理系統(tǒng)

    SpringBoot+Mybatis-Plus+Thymeleaf+Bootstrap分頁查詢(前后端完整版開源學(xué)習)圖書管理系統(tǒng)

    Mybatis-Plus | Spring Boot+Mybatis-Plus+Thymeleaf+Bootstrap分頁頁查詢(前后端都有) 主要參考了這篇博客。 運行截圖 3.9.1 mybatis-plus 插入時間和更新時間字段自動填充工具 3.9.2 分頁插件工具

    2023年04月11日
    瀏覽(18)
  • MyBatis-Plus 分頁設(shè)置不生效

    MyBatis-Plus 分頁設(shè)置不生效

    在配置類上加攔截器 2.當你設(shè)置了數(shù)據(jù)源需要在數(shù)據(jù)源上添加攔截器

    2024年02月15日
    瀏覽(18)
  • mybatis-plus實現(xiàn)分頁查詢

    mybatis-plus實現(xiàn)分頁查詢

    分頁查詢使用的方法是: IPage:用來構(gòu)建分頁查詢條件 Wrapper:用來構(gòu)建條件查詢的條件,目前我們沒有可直接傳為Null IPage:返回值,你會發(fā)現(xiàn)構(gòu)建分頁條件和方法的返回值都是IPage IPage是一個接口,我們需要找到它的實現(xiàn)類來構(gòu)建它,具體的實現(xiàn)類,可以進入到IPage類中按ctrl+

    2023年04月08日
    瀏覽(23)
  • MyBatis-Plus分頁查詢(快速上手運用)

    MyBatis-Plus分頁查詢(快速上手運用)

    Mybatis-Plus知識點[MyBatis+MyBatis-Plus的基礎(chǔ)運用]_心態(tài)還需努力呀的博客-CSDN博客?? Mybatis-Plus+SpringBoot結(jié)合運用_心態(tài)還需努力呀的博客-CSDN博客 MyBaits-Plus中@TableField和@TableId用法_心態(tài)還需努力呀的博客-CSDN博客 MyBatis-Plus中的更新操作(通過id更新和條件更新)_心態(tài)還需努力呀的博

    2024年02月16日
    瀏覽(22)
  • Mybatis-plus 分頁 自定義count方法

    使用了mybatisplus 語句中有order by 語法 mybatisplus會使用 select count(*) from (子語句) TOTAL 算出total 但是會報錯 查詢條件QueryWrapper中還有order by排序條件,則生成的select count(*) from(sql) 就會報錯 除非另外還指定了 TOP、OFFSET 或 FOR XML,否則,ORDER BY 子句在視圖、內(nèi)聯(lián)函數(shù)、派生表、子查

    2024年04月23日
    瀏覽(16)
  • MyBatis-Plus自定義分頁模型

    MyBatis-Plus自帶的分頁模型Page有些參數(shù),我覺得不是很必要,因此自定義自己的分頁模型。該類繼承了 IPage 類,實現(xiàn)了簡單分頁模型如果你要實現(xiàn)自己的分頁模型可以繼承 Page 類或者實現(xiàn) IPage 類。因為Java是單繼承多實現(xiàn)的,所以我們使用實現(xiàn)IPage接口的方式實現(xiàn)我們自己的分

    2024年02月12日
    瀏覽(18)
  • springboot使用Mybatis-plus分頁插件

    在? pom.xml ? 文件中添加 MyBatis Plus 和分頁插件的依賴: 注意替換? {mybatis-plus-version} ?為對應(yīng)的版本號。 在 Spring Boot 的配置文件? application.yml ? 中添加分頁插件的配置參數(shù): 注意代碼中的注釋,其中 ? PaginationInterceptor ?表示使用 MyBatis Plus 提供的分頁插件。 在接口層使用

    2024年02月07日
    瀏覽(21)
  • Spring Boot學(xué)習隨筆- 集成MyBatis-Plus(三)自定義SQL、分頁實現(xiàn)(PaginationInterceptor )、更新和刪除詳細方法

    學(xué)習視頻:【編程不良人】Mybatis-Plus整合SpringBoot實戰(zhàn)教程,提高的你開發(fā)效率,后端人員必備! 自定義mapper文件是為了應(yīng)對一些更復(fù)雜的查詢場景,首先先配置映射路徑 由于這里的mapper文件放在java文件夾中,所以要在pom.xml里進行配置 mapper 測試 在MyBatis Plus中, 物理分頁 和 內(nèi)

    2024年02月03日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包