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

SpringBoot整合MongoDB完成增刪改查分頁查詢方式

 更新時間:2025年11月14日 09:18:48   作者:今晚我一個人  
本文介紹了如何在SpringBoot中整合MongoDB,包括依賴導(dǎo)入、連接配置、實體類創(chuàng)建、增刪改查、分頁查詢、時間范圍查詢以及基本操作的調(diào)試

SpringBoot整合MongoDB完成增刪改查分頁查詢

mongodb的依賴導(dǎo)入以及連接配置請自行配置,此文檔環(huán)境已經(jīng)搭建完成。

一,SpringBoot整合MongoDB準備工作

1,首先要有mongodb的Document對應(yīng)的實體類,標注@Document注解

//collection="zt_message_carousel"即為mongodb庫中的文檔名字
@Document(collection="zt_message_carousel")
public class CarouselInfo {
    //創(chuàng)建索引
    @Indexed(unique = true)
    @Id
    private String id;
    private String type;
    private String title;
    private String clickUrl;
    private String photoUrl;
    private Integer platformId;
    private String systemId;
    private Integer sort;
    private int state;
    private String creator;
    private Date createTime;
    private Date updateTime;
}

二,SpringBoot整合MongoDB完成添加操作

//添加操作比較簡單,創(chuàng)建對象,設(shè)置參數(shù),調(diào)用api即可
        CarouselInfo info = new CarouselInfo();
        //設(shè)置參數(shù)
        info.setId(UUIDUtil.getUuid());
        info.setSystemId(params.getSystemId());
        info.setPlatformId(params.getPlatformId());
        info.setTitle(params.getTitle());
        info.setType(params.getType());
        info.setClickUrl(params.getClickUrl());
        info.setCreator(params.getCreator());
        info.setPhotoUrl(params.getPhotoUrl());
        info.setCreateTime(new Date());
        //調(diào)用方法,完成添加,并返回添加成功的數(shù)據(jù)
        CarouselInfo carouselInfo = mongoTemplate.save(info);

三,SpringBoot整合MongoDB完成刪除操作

		//創(chuàng)建查詢
		Query query = new Query();
		//設(shè)置條件
        Criteria criteria = new Criteria();
        List<String> list = Arrays.asList(ids.split(","));
        criteria.and("systemId").is(systemId);
        criteria.and("platformId").is(platformId);
        //這里用的是in,也可以是ID,刪除一條,靈活使用
        criteria.and("id").in(list);
        query.addCriteria(criteria);
        //調(diào)用方法,DeleteResult中可以獲取到刪除的條數(shù)
        DeleteResult remove = mongoTemplate.remove(query, CarouselInfo.class);

四,SpringBoot整合MongoDB完成修改操作

		//創(chuàng)建查詢,主要是用來定位要修改的對象
		Query query = new Query();
        Criteria criteria = new Criteria();
        criteria.and("systemId").is(params.getSystemId()).and("platformId").is(params.getPlatformId()).and("id").is(params.getId());
        query.addCriteria(criteria);
        //創(chuàng)建Update,修改設(shè)置,給查詢到的對象,對應(yīng)的字段設(shè)置新值,和sql異曲同工
        Update update = new Update().set("title", params.getTitle()).set("type", params.getType()).set("photoUrl", params.getPhotoUrl()).set("updateTime",new Date());
        //執(zhí)行修改操作,返回修改成功的條數(shù)
        UpdateResult res = mongoTemplate.updateFirst(query, update, CarouselInfo.class);

五,SpringBoot整合MongoDB完成查詢操作

//這里是把查詢條件寫在了方法內(nèi),也可提取出來,也可以使用find()方法,返回的就是一個List集合
CarouselInfo info = mongoTemplate.findOne(new Query(Criteria.where("systemId").is(systemId).and("platformId").is(platformId).and("id").is(id)), CarouselInfo.class);

六,SpringBoot整合MongoDB完成分頁查詢操作

		//創(chuàng)建查詢,查出此條件下,總記錄數(shù)
		Query query = new Query();
        Criteria criteria = new Criteria();
        criteria.and("systemId").is(params.getSystemId());
        criteria.and("platformId").is(params.getPlatformId());
        if (StringUtils.isNotBlank(params.getTitle())) {
            criteria.and("title").is(params.getTitle());
        }
        if (StringUtils.isNotBlank(params.getType())) {
            criteria.and("type").is(params.getType());
        }
        if (params.getState() != null) {
            criteria.and("state").is(params.getState());
        }
        query.addCriteria(criteria);
        int count = mongoTemplate.find(query, CarouselInfo.class).size();
        
        // 分頁查詢
        params.setCurPage(params.getCurPage() == null ? PageParameter.DEFAULT_CURR_PAGE : params.getCurPage());
        params.setPageSize(params.getPageSize() == null ? PageParameter.DEFAULT_PAGE_SIZE : params.getPageSize());
        //此處為第幾頁,從第幾條開始查,公式和sql一樣,根據(jù)業(yè)務(wù)自行設(shè)置
        query.skip((params.getCurPage() - 1) * params.getPageSize());
        //每頁條數(shù)
        query.limit(params.getPageSize());
        //調(diào)用find(),查出符合條件的數(shù)據(jù)
        List<CarouselInfo> carouselInfos = mongoTemplate.find(query, CarouselInfo.class);

七,SpringBoot整合MongoDB完成時間范圍查詢操作

因為mongodb存儲的時間和我們系統(tǒng)的時間不一樣,所以需要進行時區(qū)的更改

	//日期類型的,用gte和lte比較即可,且where條件只應(yīng)出現(xiàn)一次,所以根據(jù)業(yè)務(wù)書寫自己的邏輯即可
    query.addCriteria(Criteria.where("createTime").gte(dateToISODate(new Date(beginTime + 8*60*60*1000))).lte(dateToISODate(new Date(endTime + 8*60*60*1000))));
    /**
     * 將時間戳轉(zhuǎn)化為mongodb中的ISODate時間類型數(shù)據(jù)
     * @param   dateStr Date類型時間戳
     * @return  parse   ISODate時間
     */
    public static Date dateToISODate(Date dateStr) {
        Date parse = null;
        try {
            // 解析出字符串時間
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
            parse = format.parse(format.format(dateStr));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return parse;
    }

SpringBoot整合mongodb完成基本的增刪改查操作,根據(jù)需要,自行調(diào)試,完活收工。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot使用freemarker導(dǎo)出word文件方法詳解

    SpringBoot使用freemarker導(dǎo)出word文件方法詳解

    這篇文章主要介紹了SpringBoot使用freemarker導(dǎo)出word文件方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • java開發(fā)線上事故理解RocketMQ異步精髓

    java開發(fā)線上事故理解RocketMQ異步精髓

    這篇文章主要介紹了java開發(fā)線上事故理解RocketMQ異步精髓
    2022-07-07
  • 深入解析Java的包(package)

    深入解析Java的包(package)

    這篇文章主要介紹了深入解析Java的包(package),是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • springboot中的controller注意事項說明

    springboot中的controller注意事項說明

    這篇文章主要介紹了springboot中的controller注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java 繼承后成員的隱藏與重寫(示例詳解)

    Java 繼承后成員的隱藏與重寫(示例詳解)

    在Java中,繼承是一種允許新類(子類)繼承另一個類(父類)的成員(包括字段、方法等)的特性,本文給大家介紹了Java 繼承后成員的隱藏與重寫,感興趣的朋友跟隨小編一起看看吧
    2025-10-10
  • 2024最新版Java?JDK安裝配置圖文詳解全攻略

    2024最新版Java?JDK安裝配置圖文詳解全攻略

    這篇文章主要介紹了2024最新版Java?JDK安裝配置圖文詳解的相關(guān)資料,包含準備工作、下載步驟、安裝指南及環(huán)境變量配置驗證,供用戶輕松搭建Java開發(fā)環(huán)境,需要的朋友可以參考下
    2024-09-09
  • 多種情況下jar包獲取文件的路徑,讀取文件方式

    多種情況下jar包獲取文件的路徑,讀取文件方式

    文章介紹了在不同情況下(IDEA運行和JAR包運行)獲取文件路徑的方法,并總結(jié)了每種方式的適用場景
    2024-11-11
  • 深入淺析Java 虛擬線程

    深入淺析Java 虛擬線程

    Java21引入了虛擬線程,這是一種輕量級線程,適用于IO密集型的應(yīng)用,可以極大提高應(yīng)用的性能和吞吐量,虛擬線程是由傳統(tǒng)線程執(zhí)行的,由JVM控制上下文切換,創(chuàng)建和銷毀的開銷小,適用于高并發(fā)場景,本文介紹Java 虛擬線程的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • JAVA統(tǒng)計字符串中某個字符出現(xiàn)次數(shù)的方法實現(xiàn)

    JAVA統(tǒng)計字符串中某個字符出現(xiàn)次數(shù)的方法實現(xiàn)

    本文主要介紹了JAVA統(tǒng)計字符串中某個字符出現(xiàn)次數(shù)的方法實現(xiàn),可以循環(huán)使用String的charAt(int index)函數(shù),具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • SpringBoot?配置文件總結(jié)

    SpringBoot?配置文件總結(jié)

    SpringBoot中提供一個全局的配置文件:application.properties,這個配置文件的作用就是,允許我們通過這個配置文件去修改Spring?Boot自動配置的默認值,本文詳細總結(jié)了SpringBoot配置文件,文中有詳細的代碼示例,感興趣的同學(xué)可以參考下
    2023-05-05

最新評論

张家口市| 密山市| 梁平县| 宁海县| 柳江县| 内乡县| 弥勒县| 镇坪县| 贞丰县| 上林县| 博爱县| 新邵县| 武夷山市| 抚顺市| 安新县| 万全县| 洛川县| 临清市| 东阿县| 金华市| 建德市| 永德县| 玉环县| 天镇县| 神农架林区| 手游| 德格县| 北宁市| 遂溪县| 天长市| 炎陵县| 丽江市| 肃宁县| 杭州市| 洛阳市| 浠水县| 永康市| 平舆县| 手机| 蕉岭县| 卓尼县|