网站开发培训深圳,兰州网络营销推广价格,网站建设公众号开发,万网域名解析教程#xff08;一#xff09;代码编写
1.阅读需求#xff0c;确保理解其中的每一个要素#xff1a;
获取全部运费模板#xff1a;这意味着我需要从数据库中查询所有运费模板数据。按创建时间倒序排序#xff1a;这意味着查询结果需要根据模板的创建时间进行排序#xff0…一代码编写
1.阅读需求确保理解其中的每一个要素
获取全部运费模板这意味着我需要从数据库中查询所有运费模板数据。按创建时间倒序排序这意味着查询结果需要根据模板的创建时间进行排序最新的模板应排在最前面。 2.查看项目中是否已有用于表示运费模板的实体类例如 CarriageEntity。通常这个类会包含必要的字段如 id、created创建时间等
使用查询包装器利用 LambdaQueryWrapper 来构造查询条件。添加排序条件使用 orderByDesc 方法指定按照 created 字段进行降序排序。 3.我会使用框架Service提供的查询方法来执行查询。例如如果有一个基础服务类提供了 list 方法我会调用这个方法并传入之前构造的查询条件。 4.查询返回的通常是一个实体对象列表例如 ListCarriageEntity我需要将这些实体转换为 DTO 对象以便返回给调用者。
得如下; 写在controller中
Override public ListCarriageDTO findAll() { // 1. 构造查询条件按创建时间倒序 LambdaQueryWrapperCarriageEntity queryWrapper Wrappers.lambdaQuery(); queryWrapper.orderByDesc(CarriageEntity::getCreated); // 2. 查询数据库 ListCarriageEntity list super.list(queryWrapper); // 3. 将结果转换为 DTO 类型 return list.stream().map(CarriageUtils::toDTO).collect(Collectors.toList()); }
二代码解析
1.LambdaQueryWrapperCarriageEntity 中的 CarriageEntity 是一个泛型参数
内指定查询包装器将要操作的实体类型 2.LambdaQueryWrapper 提供了链式调用的方法来构造查询条件 3.使用 Lambda 表达式引用实体类的字段即.orderByDesc(CarriageEntity::getCreated); 想了想还是补充
map()使用数据类型转换类CarriageUtils将查询到的结果映射(转换)DTO
collectCollectors.toList()将结果收集成列表这是一个固定搭配 (三)单元测试
1.创建测试目录 选择 2.创建测试
altenter之后 创建完测试之后就可以在刚刚创建的测试目录找到创建的测试 测试代码
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 {ResourceCarriageService carriageService;Testvoid saveOrUpdate() {}Testvoid findAll() {ListCarriageDTO all carriageService.findAll();all.forEach(System.out::println);}Testvoid compute() {}
} 单元测试遇到bug了 修好再回来补充↓
测试方法Failed to load ApplicationContext问题