【笔记】Day2.5.1查询运费模板列表(未完

(一)代码编写

1.阅读需求,确保理解其中的每一个要素:

  • 获取全部运费模板:这意味着我需要从数据库中查询所有运费模板数据。
  • 按创建时间倒序排序:这意味着查询结果需要根据模板的创建时间进行排序,最新的模板应排在最前面。

2.查看项目中是否已有用于表示运费模板的实体类(例如 CarriageEntity)。通常这个类会包含必要的字段,如 id、created(创建时间)等

  • 使用查询包装器 :利用 LambdaQueryWrapper 来构造查询条件。
  • 添加排序条件 :使用 orderByDesc 方法,指定按照 created 字段进行降序排序。

3.我会使用框架(Service)提供的查询方法来执行查询。例如,如果有一个基础服务类提供了 list 方法,我会调用这个方法并传入之前构造的查询条件。

4.查询返回的通常是一个实体对象列表(例如 List<CarriageEntity>),我需要将这些实体转换为 DTO 对象,以便返回给调用者。

得如下; 写在controller中

@Override

public List<CarriageDTO> findAll() {

// 1. 构造查询条件,按创建时间倒序

LambdaQueryWrapper<CarriageEntity> queryWrapper = Wrappers.lambdaQuery();

queryWrapper.orderByDesc(CarriageEntity::getCreated);

// 2. 查询数据库

List<CarriageEntity> list = super.list(queryWrapper);

// 3. 将结果转换为 DTO 类型

return list.stream().map(CarriageUtils::toDTO).collect(Collectors.toList());

}

(二)代码解析:

1.LambdaQueryWrapper<CarriageEntity> 中的 CarriageEntity 是一个泛型参数

<>内指定 查询包装器将要操作的实体类型

2.LambdaQueryWrapper 提供了链式调用的方法 来构造查询条件

3.使用 Lambda 表达式 引用实体类的字段 ,即.orderByDesc(CarriageEntity::getCreated);

想了想还是补充:

map()使用数据类型转换类CarriageUtils将查询到的结果映射(转换)DTO

collect(Collectors.toList())将结果收集成列表(这是一个固定搭配)

(三)单元测试

1.创建测试目录

选择

2.创建测试

alt+enter之后

创建完测试之后就可以在刚刚创建的测试目录找到创建的测试

测试代码:

复制代码
package com.sl.ms.carriage.service.impl;

import com.sl.ms.carriage.domain.dto.CarriageDTO;
import com.sl.ms.carriage.service.CarriageService;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;

import java.util.List;


@SpringBootTest
class CarriageServiceImplTest {
    @Resource
    CarriageService carriageService;

    @Test
    void saveOrUpdate() {
    }

    @Test
    void findAll() {
        List<CarriageDTO> all = carriageService.findAll();
        all.forEach(System.out::println);
    }

    @Test
    void compute() {
    }
}

单元测试遇到bug了 修好再回来补充↓

测试方法Failed to load ApplicationContext问题

相关推荐
紧跟先前的步伐2 分钟前
Go AI Agent 实战 05|Temperature 与生成参数:让模型输出可控
java·人工智能·golang
金銀銅鐵8 分钟前
[Java] 展示添加元素时 ArrayList 的内部变化
java·后端·ai编程
斌糖雪梨27 分钟前
spring auth 核心流程详解
java·后端·spring
quantdash_cc31 分钟前
从实时行情到价格观察表:用 Python 和 Pandas 构建策略输入数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
昂好的day1 小时前
VisionMaster 通信模块实战(上):Modbus、TCP 收发、协议组装解析
开发语言·网络·网络协议·tcp/ip·c#
文丑颜不良啊2 小时前
LeetCode201~225题目解析
java·leetcode
努力实干2 小时前
面向对象设计原则——C++
开发语言·c++·数码相机
SL_staff4 小时前
4G设备掉线三层归因指南:SIM卡、模组、JVS-IOT网关配置精准锁定
java·物联网·产品
NetX行者4 小时前
四语言 Hello World 背后:编译模型与运行时对比
开发语言
Wang's Blog4 小时前
Java 项目实战: 交友项目 - 黑名单:取消黑名单
java·windows·交友