老婆出轨 发表于 2024-12-3 10:20:29

举个例子讲解DTO负责干啥

dto

在Spring Boot的开发过程中,使用DTO(Data Transfer Object)层是一个很常见的做法。DTO层是在应用程序的业务逻辑层和数据访问层之间引入的一个中心层,用于在不同层之间传输数据。本文将介绍DTO层的基本语法和为什么在Spring Boot开发中需要使用DTO层,并提供实际案例代码。
https://img2023.cnblogs.com/blog/2862884/202412/2862884-20241203102630568-1165899734.png
DTO(Data Transfer Object)重要是在应用程序的不同层之间传输数据,特别是从服务层到展示层(即控制器层),以及从展示层到客户端。具体来说,DTO的作用和传输路径如下:
从服务层到展示层:

[*]服务层:处置惩罚业务逻辑,可能涉及到多个数据库操作、盘算等。
[*]控制器层:吸收HTTP请求,调用服务层的方法,然后将结果以DTO的形式返回给客户端。
从客户端到展示层:

[*]客户端:发送包罗数据的HTTP请求(比方POST请求)到服务器。
[*]展示层:吸收请求,将请求体中的数据绑定到DTO对象。
[*]服务层:处置惩罚DTO对象,进行业务逻辑处置惩罚,可能涉及保存数据到数据库等操作。
其实在之前的博客当中,我们定义了一种返回给前端的格式,这就是一种传输模式https://img2023.cnblogs.com/blog/2862884/202412/2862884-20241203102629897-929959494.png
这次我们就简单介绍一下与数据库有交集的dto规范下的一种传输模式。
首先我们要定义好实体,就是我们数据库的字段,照旧我们之前的那个数据库,前两篇文章可以看这里

[*][用一个项目把控制层、业务层、长期层说明白了,每一句话都讲的很清楚 ](用一个项目把控制层、业务层、长期层说明白了,每一句话都讲的很清楚 - ivanlee717 - 博客园)
[*]lombok是怎么用的 - ivanlee717 - 博客园
我们盼望用一个get请求传进来的时候,返回对应id的账户信息,用dto去传输是因为我们可能对同一个表进行多次的操作,每次返回不同的信息,那么直接对实体本身操作就会非常的复杂,所以我们单写一个userDto类
package com.ivan.store.entity.dto;


import lombok.Data;

@Data
public class UserDto {
    private String username;
    private String password;
}这个就是盼望传输给前端的只有数据库的账号和暗码两个字段,然后加上注解就可以了。接下往复实现控制层的路径:
@GetMapping("/{id}")
public UserDto findById(@PathVariable Integer id){
    UserDto userDto = userService.findById(id);
    return userDto;
}@PathVariable 映射 URL 绑定的占位符
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处置惩罚方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx”) 绑定到操作方法的入参中。
将id弄到我们findById方法里面来寻找对应的数据,然后用dto格式返回。
    public UserDto findById(Integer id){
      User user = userMapper.findById(id);
      UserDto userDto = new UserDto();
      userDto.setUsername(user.getUsername());
      userDto.setPassword(user.getPassword());
      return userDto;
    }<select id="findById" resultMap="UserEntityMap">
      SELECT * FROM t_user WHERE uid = #{id}
    </select>如许写好之后,我们就可以根据id来获取到账户信息来实现一个浅显的dto使用。
https://img2023.cnblogs.com/blog/2862884/202412/2862884-20241203102629128-1205417824.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 举个例子讲解DTO负责干啥