Skip to content

数据封装

DO

DO = 数据库表的“映射对象”,只在“和数据库打交道”时用。不建议在DO中添加无关的字段

新增/更新时,通常需要使用到DO

java
UserDO user = new UserDO();
user.setName("张三");
userMapper.insert(user);
java
int update(UserDO user);
  • 不建议直接返回给前端

DTO

DTO(Data Transfer Object)= 用来“接收前端参数”的对象

java
@Data
public class UserQueryDTO {
    private String name;
    private Integer age;
}
java
@PostMapping("/list")
public List<UserVO> list(@RequestBody UserQueryDTO dto) {
    return userService.list(dto);
}

VO

返回给前端的对象应该就是VO,如果想偷懒,直接返回DO也是可以的

连接查询

java
@Data
public class UserVO {
    private Long id;
    private String name;
    private Integer age;
    private String address; // 关联字段
}
xml
<select id="selectUserList" resultType="UserVO">
    SELECT 
        u.id,
        u.name,
        u.age,
        a.address
    FROM user u
    LEFT JOIN address a ON u.id = a.user_id
</select>
java
List<UserVO> selectUserList();

按需裁剪

UserSimpleVO
java
@Data
public class UserSimpleVO {
    private String name;
    private Integer age;
}
XML
xml
<select id="selectSimpleList" resultType="UserSimpleVO">
    SELECT name, age
    FROM user
</select>
Service
java
public List<UserSimpleVO> list() {
    return userMapper.selectSimpleList();
}