封装查询结果的属性
返回一部分属性
如果你想将查询结果返回给前端,你可以使用自定义的 DTO(数据传输对象)来封装查询结果,并将 DTO 对象作为响应返回给前端。
以下是一个示例代码,展示了如何使用自定义的 DTO 封装查询结果,并将 DTO 对象作为响应返回给前端:
首先,你需要创建一个 DTO 类,用于封装查询结果的属性:
```java
public class CustomerDTO {
private Long id;
private String customerName;
private Date nextTime;
private Date updateTime;
private Date createTime;
// 省略构造函数和 getter/setter 方法
}
```
然后,你可以在 Mapper XML 文件中使用 `@Results` 注解将查询结果映射到 DTO 类:
```xml
<select id="selectCustomer" resultMap="customerResultMap">
select id, customer_name, next_time, update_time, create_time
from crm_customer
where is_deleted = 0
</select>
@Results(id = "customerResultMap", value = {
@Result(property = "id", column = "id"),
@Result(property = "customerName", column = "customer_name"),
@Result(property = "nextTime", column = "next_time"),
@Result(property = "updateTime", column = "update_time"),
@Result(property = "createTime", column = "create_time")
})
List<CustomerDTO> selectCustomer();
```
在这个示例中,我们将查询结果映射到了 `CustomerDTO` 类中的属性。
接下来,你可以在 Service 层调用这个查询方法,并将结果返回给 Controller 层:
```java
@Service
public class CustomerServiceImpl implements CustomerService {
@Autowired
private CustomerMapper customerMapper;
@Override
public List<CustomerDTO> getCustomers() {
return customerMapper.selectCustomer();
}
}
```
在 Controller 层,你可以直接将查询结果作为响应返回给前端:
```java
@RestController
@RequestMapping("/customers")
public class CustomerController {
@Autowired
private CustomerService customerService;
@GetMapping
public List<CustomerDTO> getCustomers() {
return customerService.getCustomers();
}
}
```
通过这种方式,你可以将查询结果封装到自定义的 DTO 对象中,并将 DTO 对象作为响应返回给前端。请确保 DTO 类中的属性与查询结果的字段名称相匹配。