SpringBoot集成MongoDB使用

摘要

本文介绍了SpringBoot中如何集成MongoDB使用,并展示了增删改查及聚合方法使用。关键在于实体类的集合声明,以及业务逻辑类的API使用,让我们拿下它。

SpringBoot集成MongoDB

先往monggodb里导入初始数据

perl 复制代码
{"_id":"ORDER_001","orderDate":{"$date":"2024-10-23T10:30:00Z"},"orderStatus":"shipped","customer":{"customerId":"CUST_8901","name":"李明","contact":{"email":"liming@example.com","phone":"13800138001","address":{"street":"花园路 123 号","city":"上海","province":"上海","Codepostal":"200000","country":"中国"}},"membership":{"level":"gold","points":1500,"discount":0.1}},"shipping":{"shippingId":"SHIP_0056","carrier":"顺丰速运","trackingNumber":"SF1234567890","shippingAddress":{"street":"科技大道 45 号","city":"北京","province":"北京","postalCode":"100000","country":"中国"},"shippingDate":{"$date":"2024-10-25T14:00:00Z"},"estimatedDelivery":"2024-10-30T16:00:00Z"},"payment":{"paymentId":"PAY_7890","paymentMethod":"creditCard","paymentDate":{"$date":"2024-10-23T01:35:00Z"},"amount":2499.00,"currency":"CNY","paymentStatus":"completed"},"items":[{"itemId":"ITEM_001","product":{"productId":"PROD_4567","name":"智能手机","category":"electronics","description":"高性能智能手机,6.7 英寸屏幕,5G 网络,128GB 存储","price":399.900,"specs":{"processor":"骁龙 8 系列","ram":"8GB","battery":"4500mAh","color":"黑色"}},"quantity":1,"subtotal":3999.00,"discount":0.25,"total":2999.25},{"itemId":"ITEM_002","product":{"productId":"DPRO_8910","name":"无线耳机","category":"electronics","description":"高音质无线蓝牙耳机,主动降噪,舒适佩戴","price":899.00,"specs":{"batteryLife":"20 小时","bluetoothVersion":"5.2","color":"白色"}},"quantity":1,"subtotal":899.00,"discount":0.1,"total":809.10}],"total":{"subTotal":4898.00,"discounts":989.65,"tax":194.90,"shippingFee":0.00,"grandTotal":4103.25}}

{"_id":"ORDER_002","orderDate":{"$date":"2024-10-24T14:20:00Z"},"orderStatus":"processing","customer":{"customerId":"CUST_8902","name":"张伟","contact":{"email":"zhangwei@example.com","phone":"13800138002","address":{"street":"和平路 45 号","city":"天津","province":"天津","postalCode":"300000","country":"中国"}},"membership":{"level":"silver","points":800,"discount":0.05}},"shipping":{"shippingId":"SHIP_0057","carrier":"圆通速递","trackingNumber":"YTO987654321","shippingAddress":{"street":"民主路 67 号","city":"天津","province":"天津","postalCode":"300000","country":"中国"},"shippingDate":{"$date":"2024-10-26T09:00:00Z"},"estimatedDelivery":"2024-11-01T18:00:00Z"},"payment":{"paymentId":"PAY_7891","paymentMethod":"alipay","paymentDate":{"$date":"2024-10-24T14:25:00Z"},"amount":1299.00,"currency":"CNY","paymentStatus":"completed"},"items":[{"itemId":"ITEM_003","product":{"productId":"PROD_4568","name":"平板电脑","category":"electronics","description":"10.2 英寸平板电脑,A13 芯片,64GB 存储","price":2599.00,"specs":{"processor":"A13","ram":"4GB","battery":"6500mAh","color":"银色"}},"quantity":1,"subtotal":2599.00,"discount":0.15,"total":2209.15},{"itemId":"ITEM_004","product":{"productId":"PROD_8911","name":"智能手表","category":"electronics","description":"多功能智能手表,心率监测,运动追踪","price":799.00,"specs":{"batteryLife":"7 天","bluetoothVersion":"5.0","color":"黑色"}},"quantity":1,"subtotal":799.00,"discount":0.1,"total":719.10}],"total":{"subTotal":3398.00,"discounts":539.75,"tax":169.90,"shippingFee":0.00,"grandTotal":2968.15}}

{"_id":"ORDER_003","orderDate":{"$date":"2024-10-24T14:20:00Z"},"orderStatus":"shipped","customer":{"customerId":"CUST_8903","name":"王芳","contact":{"email":"wangfang@example.com","phone":"13800138003","address":{"street":"建设路 78 号","city":"重庆","province":"重庆","postalCode":"400000","country":"中国"}},"membership":{"level":"platinum","points":3200,"discount":0.15}},"shipping":{"shippingId":"SHIP_0058","carrier":"京东物流","trackingNumber":"JD9876543210","shippingAddress":{"street":"解放路 34 号","city":"重庆","province":"重庆","postalCode":"400000","country":"中国"},"shippingDate":{"$date":"2024-10-24T14:20:00Z"},"estimatedDelivery":"2024-10-31T14:00:00Z"},"payment":{"paymentId":"PAY_7892","paymentMethod":"wechatpay","paymentDate":{"$date":"2024-10-24T14:20:00Z"},"amount":3899.00,"currency":"CNY","paymentStatus":"completed"},"items":[{"itemId":"ITEM_005","product":{"productId":"PROD_4569","name":"笔记本电脑","category":"electronics","description":"15.6 英寸笔记本电脑,i7 处理器,16GB 内存,512GB SSD","price":5999.00,"specs":{"processor":"i7","ram":"16GB","battery":"5600mAh","color":"深空灰"}},"quantity":1,"subtotal":5999.00,"discount":0.2,"total":4799.20},{"itemId":"ITEM_006","product":{"productId":"PROD_8912","name":"机械键盘","category":"electronics","description":"机械键盘,青轴,背光,游戏专用","price":499.00,"specs":{"switchType":"青轴","backlight":"RGB","layout":"全键"}},"quantity":1,"subtotal":499.00,"discount":0.1,"total":449.10}],"total":{"subTotal":6498.00,"discounts":1299.70,"tax":324.90,"shippingFee":0.00,"grandTotal":5522.20}}

{"_id":"ORDER_004","orderDate":{"$date":"2023-10-24T14:20:00Z"},"orderStatus":"pending","customer":{"customerId":"CUST_8904","name":"刘强","contact":{"email":"liuqiang@example.com","phone":"13800138004","address":{"street":"中山路 90 号","city":"广州","province":"广东","postalCode":"510000","country":"中国"}},"membership":{"level":"bronze","points":200,"discount":0.02}},"shipping":{"shippingId":"SHIP_0059","carrier":"中通快递","trackingNumber":"ZTO123456789","shippingAddress":{"street":"天河路 56 号","city":"广州","province":"广东","postalCode":"510000","country":"中国"},"shippingDate":{"$date":"2023-10-24T14:20:00Z"},"estimatedDelivery":"2024-11-03T17:00:00Z"},"payment":{"paymentId":"PAY_7893","paymentMethod":"bankTransfer","paymentDate":{"$date":"2023-10-24T14:20:00Z"},"amount":1599.00,"currency":"CNY","paymentStatus":"pending"},"items":[{"itemId":"ITEM_007","product":{"productId":"PROD_4570","name":"数码相机","category":"electronics","description":"2420 万像素数码相机,4K 视频,WiFi 连接","price":3999.00,"specs":{"sensor":"APS-C","megapixels":24.2,"zoom":"18-55mm","color":"黑色"}},"quantity":1,"subtotal":3999.00,"discount":0.1,"total":3599.10},{"itemId":"ITEM_008","product":{"productId":"PROD_8913","name":"蓝牙音箱","category":"electronics","description":"便携式蓝牙音箱,立体声,防水设计","price":299.00,"specs":{"batteryLife":"12 小时","bluetoothVersion":"5.0","waterproof":"IPX7"}},"quantity":1,"subtotal":299.00,"discount":0.05,"total":284.05}],"total":{"subTotal":4298.00,"discounts":429.80,"tax":214.90,"shippingFee":0.00,"grandTotal":4082.10}}

{"_id":"ORDER_005","orderDate":{"$date":"2023-10-24T14:20:00Z"},"orderStatus":"shipped","customer":{"customerId":"CUST_8905","name":"赵敏","contact":{"email":"zhaomin@example.com","phone":"13800138005","address":{"street":"南京路 110 号","city":"南京","province":"江苏","postalCode":"210000","country":"中国"}},"membership":{"level":"gold","points":2100,"discount":0.1}},"shipping":{"shippingId":"SHIP_0060","carrier":"韵达快递","trackingNumber":"YD9876543210","shippingAddress":{"street":"汉中路 78 号","city":"南京","province":"江苏","postalCode":"210000","country":"中国"},"shippingDate":{"$date":"2023-10-24T14:20:00Z"},"estimatedDelivery":"2024-11-04T15:00:00Z"},"payment":{"paymentId":"PAY_7894","paymentMethod":"creditCard","paymentDate":{"$date":"2023-10-24T14:20:00Z"},"amount":2399.00,"currency":"CNY","paymentStatus":"completed"},"items":[{"itemId":"ITEM_009","product":{"productId":"PROD_4571","name":"游戏主机","category":"electronics","description":"高性能游戏主机,4K HDR,1TB 存储","price":2999.00,"specs":{"processor":"定制 CPU","gpu":"定制 GPU","storage":"1TB SSD","color":"黑色"}},"quantity":1,"subtotal":2999.00,"discount":0.2,"total":2399.20}],"total":{"subTotal":2999.00,"discounts":599.80,"tax":149.95,"shippingFee":0.00,"grandTotal":2549.15}}

{"_id":"ORDER_006","orderDate":{"$date":"2023-10-24T14:20:00Z"},"orderStatus":"processing","customer":{"customerId":"CUST_8906","name":"孙雨","contact":{"email":"sunny@example.com","phone":"13800138006","address":{"street":"成都路 124 号","city":"成都","province":"四川","postalCode":"610000","country":"中国"}},"membership":{"level":"silver","points":650,"discount":0.07}},"shipping":{"shippingId":"SHIP_0061","carrier":"德邦快递","trackingNumber":"DB9876543210","shippingAddress":{"street":"锦江路 56 号","city":"成都","province":"四川","postalCode":"610000","country":"中国"},"shippingDate":{"$date":"2023-10-24T14:20:00Z"},"estimatedDelivery":"2024-11-06T16:00:00Z"},"payment":{"paymentId":"PAY_7895","paymentMethod":"alipay","paymentDate":{"$date":"2023-10-24T14:20:00Z"},"amount":1799.00,"currency":"CNY","paymentStatus":"completed"},"items":[{"itemId":"ITEM_010","product":{"productId":"PROD_4572","name":"智能音箱","category":"electronics","description":"智能语音助手,高品质音频,多房间音乐","price":499.00,"specs":{"audioOutput":"360 度环绕","connectivity":"WiFi, Bluetooth","color":"白色"}},"quantity":2,"subtotal":998.00,"discount":0.1,"total":898.20},{"itemId":"ITEM_011","product":{"productId":"PROD_8914","name":"电动牙刷","category":"health","description":"声波电动牙刷,智能计时,多种清洁模式","price":399.00,"specs":{"batteryLife":"30 天","chargingType":"感应充电","color":"蓝色"}},"quantity":1,"subtotal":399.00,"discount":0.05,"total":379.05},{"itemId":"ITEM_012","product":{"productId":"PROD_8915","name":"电子血压计","category":"health","description":"上臂式电子血压计,高精度测量,大屏幕显示","price":299.00,"specs":{"measurementType":"上臂式","display":"LCD","memory":"60 组数据"}},"quantity":1,"subtotal":299.00,"discount":0.03,"total":289.13}],"total":{"subTotal":1696.00,"discounts":179.60,"tax":84.80,"shippingFee":0.00,"grandTotal":1601.20}}

引入依赖,不用添加版本号

xml 复制代码
<!-- mongodb -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

配置数据源,连接本地mongodb服务器

yaml 复制代码
# 数据源配置
spring:
  data:
    mongodb:
      uri: mongodb://username:password@host:port/database?authSource=admin

定义实体类,映射集合

ini 复制代码
package org.coffeebeans.entity;

import java.util.Date;
import java.util.List;
import lombok.Data;
import java.math.BigDecimal;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * <li>ClassName: Order </li>
 * <li>Description: 创建一个实体类,用@Document注解标注,表示这是一个MongoDB的集合(Collection) </li>
 * <li>Author: OakWang </li> 
 * <li>Version: V1.0</li>
 */
@Data
@Accessors(chain = true)
@Document(collection = "orders")// 指定集合名称
public class Order {

    @Id //主键
    private String id;
    private Date orderDate;
    private String orderStatus;
    private Customer customer;
    private Shipping shipping;
    private Payment payment;
    private List<OrderItem> items;
    private OrderTotal total;
}

//以下方便展示,放入一个文件里
@Data
class Address {
    private String street;
    private String city;
    private String province;
    private String postalCode;
    private String country;
}
@Data
class Contact {
    private String email;
    private String phone;
    private Address address;
}
@Data
class Customer {
    private String customerId;
    private String name;
    private Contact contact;
    private Membership membership;
}
@Data
class Membership {
    private String level;
    private int points;
    private double discount;
}
@Data
class OrderItem {
    private String itemId;
    private Product product;
    private int quantity;
    private BigDecimal subtotal;
    private double discount;
    private BigDecimal total;
}
@Data
class OrderTotal {
    private BigDecimal subTotal;
    private BigDecimal discounts;
    private BigDecimal tax;
    private BigDecimal shippingFee;
    private BigDecimal grandTotal;
}
@Data
class Payment {
    private String paymentId;
    private String paymentMethod;
    private Date paymentDate;
    private BigDecimal amount;
    private String currency;
    private String paymentStatus;
}
@Data
class Product {
    private String productId;
    private String name;
    private String category;
    private String description;
    private BigDecimal price;
    private ProductSpecs specs;
}
@Data
class ProductSpecs {
    private String processor;
    private String ram;
    private String battery;
    private String color;
    private String batteryLife;
    private String bluetoothVersion;
}
@Data
class Shipping {
    private String shippingId;
    private String carrier;
    private String trackingNumber;
    private Address shippingAddress;
    private Date shippingDate;
    private String estimatedDelivery;
}

定义业务逻辑类

java 复制代码
package org.coffeebeans.service;

import cn.hutool.core.date.DateUtil;
import org.coffeebeans.entity.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.*;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <li>ClassName: OrderService </li>
 * <li>Author: OakWang </li>
 * <li>Version: V1.0</li>
 */
@Service
public class OrderService {

    @Autowired
    private MongoTemplate mongoTemplate;

    // 保存订单
    @Transactional
    public Order saveOrder() {
        // 创建订单对象
        Order order = new Order();
        order.setId("ORDER_00999");
        order.setOrderDate(new Date());
        order.setOrderStatus("shipped");

        // 设置客户信息
        Customer customer = new Customer();
        customer.setCustomerId("CUST_8901");
        customer.setName("李明");

        Contact contact = new Contact();
        contact.setEmail("liming@example.com");
        contact.setPhone("13800138001");

        Address address = new Address();
        address.setStreet("花园路 123 号");
        address.setCity("上海");
        address.setProvince("上海");
        address.setPostalCode("200000");
        address.setCountry("中国");

        contact.setAddress(address);
        customer.setContact(contact);

        Membership membership = new Membership();
        membership.setLevel("gold");
        membership.setPoints(1500);
        membership.setDiscount(0.1);

        customer.setMembership(membership);
        order.setCustomer(customer);

        // 设置物流信息
        Shipping shipping = new Shipping();
        shipping.setShippingId("SHIP_0056");
        shipping.setCarrier("顺丰速运");
        shipping.setTrackingNumber("SF1234567890");

        Address shippingAddress = new Address();
        shippingAddress.setStreet("科技大道 45 号");
        shippingAddress.setCity("北京");
        shippingAddress.setProvince("北京");
        shippingAddress.setPostalCode("100000");
        shippingAddress.setCountry("中国");

        shipping.setShippingAddress(shippingAddress);
        shipping.setShippingDate(new Date());
        shipping.setEstimatedDelivery("2024-10-30T16:00:00Z");
        order.setShipping(shipping);

        // 设置支付信息
        Payment payment = new Payment();
        payment.setPaymentId("PAY_7890");
        payment.setPaymentMethod("creditCard");
        payment.setPaymentDate(new Date());
        payment.setAmount(new BigDecimal("2499.00"));
        payment.setCurrency("CNY");
        payment.setPaymentStatus("completed");
        order.setPayment(payment);

        // 设置订单项
        List<OrderItem> items = new ArrayList<>();

        OrderItem item1 = new OrderItem();
        item1.setItemId("ITEM_001");

        Product product1 = new Product();
        product1.setProductId("PROD_4567");
        product1.setName("智能手机");
        product1.setCategory("electronics");
        product1.setDescription("高性能智能手机,6.7 英寸屏幕,5G 网络,128GB 存储");
        product1.setPrice(new BigDecimal("3999.00"));

        ProductSpecs specs1 = new ProductSpecs();
        specs1.setProcessor("骁龙 8 系列");
        specs1.setRam("8GB");
        specs1.setBattery("4500mAh");
        specs1.setColor("黑色");
        product1.setSpecs(specs1);

        item1.setProduct(product1);
        item1.setQuantity(1);
        item1.setSubtotal(new BigDecimal("3999.00"));
        item1.setDiscount(0.25);
        item1.setTotal(new BigDecimal("2999.25"));
        items.add(item1);

        OrderItem item2 = new OrderItem();
        item2.setItemId("ITEM_002");

        Product product2 = new Product();
        product2.setProductId("DPRO_8910");
        product2.setName("无线耳机");
        product2.setCategory("electronics");
        product2.setDescription("高音质无线蓝牙耳机,主动降噪,舒适佩戴");
        product2.setPrice(new BigDecimal("899.00"));

        ProductSpecs specs2 = new ProductSpecs();
        specs2.setBatteryLife("20 小时");
        specs2.setBluetoothVersion("5.2");
        specs2.setColor("白色");
        product2.setSpecs(specs2);

        item2.setProduct(product2);
        item2.setQuantity(1);
        item2.setSubtotal(new BigDecimal("899.00"));
        item2.setDiscount(0.1);
        item2.setTotal(new BigDecimal("809.10"));
        items.add(item2);
        order.setItems(items);

        // 设置订单总计
        OrderTotal total = new OrderTotal();
        total.setSubTotal(new BigDecimal("4898.00"));
        total.setDiscounts(new BigDecimal("989.65"));
        total.setTax(new BigDecimal("194.90"));
        total.setShippingFee(new BigDecimal("0.00"));
        total.setGrandTotal(new BigDecimal("4103.25"));
        order.setTotal(total);

        // 保存订单
        return mongoTemplate.save(order);
    }

    // 根据ID查找订单
    public Order findOrderById(String id) {
        return mongoTemplate.findById(id, Order.class);
    }

    // 根据ID查找订单(使用Query和Criteria)
    public Order findOrder() {
        Query query = new Query();
        Criteria criteria= Criteria.where("orderStatus").is("shipped")
                .and("total.shippingFee").is(0)
                .and("_id").in("ORDER_001", "ORDER_002", "ORDER_003", "ORDER_004", "ORDER_005", "ORDER_006");
        query.addCriteria(criteria);
        return mongoTemplate.findOne(query, Order.class);
    }

    // 查找多个订单(使用Query和Criteria)
    public List<Order> findOrders() {
        Query query = new Query();
        Criteria criteria = Criteria.where("orderStatus").is("shipped")
                .and("total.shippingFee").is(0)
                .and("_id").in("ORDER_001", "ORDER_002", "ORDER_003", "ORDER_004", "ORDER_005", "ORDER_006");
        query.addCriteria(criteria);
        System.out.println("总数是:" + mongoTemplate.count(query, Order.class));
        return mongoTemplate.find(query, Order.class);
    }

    // 更新订单
    @Transactional
    public Order updateOrder(String id) {
        // 根据ID查找订单
        Order order = mongoTemplate.findById(id, Order.class);
        if (order != null) {
            // 更新订单信息
            order.setOrderStatus("修改completed");
            // 可以更新其他需要修改的字段
            return mongoTemplate.save(order);
        } else {
            return null; // 或者抛出异常,根据业务需求处理
        }
    }

    // 删除订单
    @Transactional
    public void deleteOrder(String id) {
        Query query = new Query();
        Criteria criteria = Criteria.where("_id").is(id);
        query.addCriteria(criteria);
        mongoTemplate.remove(query,Order.class);
        // 删除集合
        //mongoTemplate.dropCollection(Order.class);
    }


    //聚合查询
    public List<Map> getAggregationResults() {
        //创建一个匹配操作,用于过滤文档,只返回满足 criteria 条件的文档。
        Criteria criteria = Criteria.where("_id")
                .in("ORDER_001", "ORDER_002", "ORDER_003", "ORDER_004", "ORDER_005", "ORDER_006")
                .and("orderStatus").is("shipped")
                .and("total.subTotal").gte(1000).lte(7000)
                .and("orderDate").gte(DateUtil.parse("2022-10-26"))
                //items数组里需要满足的条件,包含什么内容
                .and("items").elemMatch(Criteria.where("itemId").in("ITEM_001","ITEM_002","ITEM_005"));
        MatchOperation match = Aggregation.match(criteria);

        //根据orderStatus创建一个分组操作,对所有文档的total.grandTotal进行累加,并将结果存储在字段 totalAmount 中。
        GroupOperation groupOperation = Aggregation.group("_id").sum("total.grandTotal").as("总数");

        //创建一个投影操作,返回内容排除payment字段
        // 创建投影操作,排除 payment 字段
        ProjectionOperation project = Aggregation.project().andExclude("payment");

        // 创建排序操作,按 totalAmount 降序排序
        SortOperation sort = Aggregation.sort(Sort.Direction.DESC, "总数");

        // 创建限制结果数量操作
        AggregationOperation limit = Aggregation.limit(5);

        //构建聚合管道
        Aggregation aggregation = Aggregation.newAggregation(match, groupOperation, project, sort, limit);

        //执行聚合查询
        AggregationResults<Map> results = mongoTemplate.aggregate(aggregation, "orders", Map.class);

        //获取聚合查询的结果
        return results.getMappedResults();
    }
}

定义控制层

kotlin 复制代码
package org.coffeebeans.controller;

import org.coffeebeans.entity.Order;
import org.coffeebeans.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;

/**
 * <li>ClassName: OrderController </li>
 * <li>Author: OakWang </li>
 * <li>Version: V1.0</li>
 */
@RestController
@RequestMapping("/")
public class OrderController {

    @Autowired
    private OrderService orderService;

    @PostMapping("/saveOrder")
    public Order saveOrder() {
        return orderService.saveOrder();

    }

    @GetMapping("/findOrderById")
    public Order findOrderById(@RequestParam("id") String id) {
        return orderService.findOrderById(id);
    }

    @GetMapping("/findOrder")
    public Order findOrder() {
        return orderService.findOrder();
    }

    @GetMapping("/findOrders")
    public List<Order> findOrders() {
        return orderService.findOrders();
    }

    @PutMapping("/updateOrder")
    public Order updateOrder(@RequestParam("id") String id) {
        return orderService.updateOrder(id);
    }

    @DeleteMapping("/deleteOrder")
    public String deleteOrder(@RequestParam("id") String id) {
        orderService.deleteOrder(id);
        return"删除成功";
    }

    @GetMapping("/getAggregationResults")
    public List<Map> getAggregationResults() {
        return orderService.getAggregationResults();
        /*
        [
            {
                "_id": "ORDER_003",
                "总数": 5522.2
            },
            {
                "_id": "ORDER_001",
                "总数": 4103.25
            }
        ]
         */
    }

}

测试接口成功

总结

以上我们了解了SpringBoot如何集成MongoDB使用,并展示了如何利用MongoTemplate来进行增删改查,以及聚合函数的使用方式。

关注公众号:咖啡Beans

在这里,我们专注于软件技术的交流与成长,分享开发心得与笔记,涵盖编程、AI、资讯、面试等多个领域。无论是前沿科技的探索,还是实用技巧的总结,我们都致力于为大家呈现有价值的内容。期待与你共同进步,开启技术之旅。

相关推荐
q_19132846953 小时前
基于RuoYi框架+Mysql的汽车进销存后台管理系统
数据库·vue.js·spring boot·mysql·汽车·个人开发·若依
悟能不能悟3 小时前
springboot在DTO使用service,怎么写
java·数据库·spring boot
__XYZ3 小时前
RedisTemplate 实现分布式锁
java·spring boot·redis·分布式·junit
Cc00108524 小时前
【AI学习笔记】用AI生成spring boot + redis
spring boot·笔记·学习·ai编程
thginWalker5 小时前
使用Spring Boot构建Web服务层
spring boot
摇滚侠5 小时前
Spring Boot 3零基础教程,Spring Boot 特性介绍,笔记02
java·spring boot·笔记
ahauedu6 小时前
Spring Boot 2.7+ 中 RedisConnectionFactory Autowire 警告的深度解析
java·spring boot·后端
摇滚侠8 小时前
Spring Boot 3零基础教程,深度理解 Spring Boot 自动配置原理,笔记11
spring boot·笔记·后端
爆更小哇8 小时前
统一功能处理
java·spring boot