用Postman测试后端数据返回值为null

DeptController.java

// 部门管理
@RestController
@Slf4j
public class DeptController {
    //private static Logger log = LoggerFactory.getLogger(DeptController.class);

    @Autowired
    private DeptService deptService;

    //@RequestMapping(value = "/depts",method = RequestMethod.GET)   // 请求方式为GET
    @GetMapping("/depts")
    public Result list(){
        log.info("查询全部部门数据:");
        //调用service查询部门数据
        List<Dept> deptList =  deptService.list();
        return Result.success(deptList);
    }
}

DeptMapper.java

// 部门管理
@Mapper
public interface DeptMapper {
    // 查询全部部门信息
    @Select("select * from dept")
    List<Dept> list();
}

表Dept的数据:

img

实体类Dept.java

// 部门实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Dept {
    private Integer id; //ID
    private String name; //部门名称
    private LocalDateTime createTime; //创建时间
    private LocalDateTime updateTime; //修改时间
}

接口DeptService及其实现DeptServiceImpl

// 部门管理
@Service
public interface DeptService {

    List<Dept> list();
}

package com.wangchen.service.impl;

import com.wangchen.mapper.DeptMapper;
import com.wangchen.pojo.Dept;
import com.wangchen.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class DeptServiceImpl implements DeptService {
    @Autowired
    private DeptMapper deptMapper;

    @Override
    public List<Dept> list() {
        return deptMapper.list();
    }
}

测试结果:

img

为什么表Dept中明明有数据,为什么data的返回结果为null?

调试看一下,控制层接口有没有这个有数据返回吗?
有的话 说明你的result封装有问题。
看一下你的Result类

【以下回答由 GPT 生成】

根据提供的代码和问题描述,有以下几个可能导致数据返回为null的原因:

  1. 数据库连接配置错误:请确保你的数据库配置文件中的数据库连接信息正确,并且数据库中存在名为"dept"的表。

  2. 数据库查询语句错误:请确保DeptMapper接口中的SQL查询语句正确,并且数据库中的"dept"表包含需要的字段。

  3. 服务层未实现:请确保DeptService的实现类DeptServiceImpl中已经实现了list()方法,并且调用了DeptMapper的list()方法返回结果。

  4. 数据库中没有部门数据:如果数据库中没有部门数据,那么调用list()方法返回的结果就是空的。

下面是一种可能的解决方案:

  1. 检查数据库连接配置信息,确保数据库连接正常。
  2. 检查数据库中是否有名为"dept"的表,以及表结构是否正确。
  3. 检查DeptMapper接口中的SQL查询语句,确保语句正确并且与数据库表对应。
  4. 在DeptServiceImpl中实现list()方法,调用DeptMapper的list()方法来获取部门数据。
  5. 检查数据库中是否有部门数据,如果没有可以插入一些测试数据进行测试。

以下是可能的解决方案代码示例:

DeptServiceImpl.java

@Service
public class DeptServiceImpl implements DeptService {
    @Autowired
    private DeptMapper deptMapper;

    @Override
    public List<Dept> list() {
        return deptMapper.list();
    }
}

如果以上步骤都没有解决问题,那么可能是其他地方的代码问题或者Postman的配置问题,请进一步检查并提供更多的错误信息和代码细节。如果还不能解决问题,请提供更详细的错误信息以便进一步排查。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^