那么dto如何在这个例子中使用
时间: 2024-04-17 17:24:57 浏览: 108
在这个例子中,DTO(Data Transfer Object)可以用于业务层和表现层之间传输数据,以满足不同层之间的数据需求和隔离。
以下是一个示例DTO的定义:
```java
public class UserDTO {
private Long id;
private String name;
private Integer age;
private String roleName;
// 省略getter和setter方法
}
```
在Service层中,可以将查询结果转换为DTO对象:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public UserDTO getUserWithRole(Long id) {
User user = userMapper.selectUserWithRole(id);
UserDTO userDTO = new UserDTO();
userDTO.setId(user.getId());
userDTO.setName(user.getName());
userDTO.setAge(user.getAge());
userDTO.setRoleName(user.getRole().getName());
return userDTO;
}
}
```
在Controller层中,返回的数据类型改为DTO:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public UserDTO getUserWithRole(@PathVariable Long id) {
return userService.getUserWithRole(id);
}
}
```
通过使用DTO,可以更好地控制数据的传输和展示,避免不必要的数据暴露和耦合。这样也能更好地满足前端或其他业务需求。
阅读全文