Files
hzdyjs/test/学生信息分页查询问题调试指导.md
T
2025-07-16 18:11:31 +08:00

4.4 KiB
Raw Blame History

学生信息分页查询问题调试指导

问题现象

  • 学生信息管理列表页面显示空白
  • 数据库中有3条学生记录,但前端页面无法显示

调试步骤

第一步:启动后端服务

方法1:使用启动脚本(推荐)

cd /Users/wuzhen/Documents/myworkspace/myproject/hzdyjspro/all-project
chmod +x start-backend.sh
./start-backend.sh

方法2:手动启动

cd /Users/wuzhen/Documents/myworkspace/myproject/hzdyjspro/all-project/backend
mvn spring-boot:run -Dspring-boot.run.profiles=dev

方法3:使用热启动脚本

cd /Users/wuzhen/Documents/myworkspace/myproject/hzdyjspro/all-project/backend
./hot-start.sh

第二步:验证服务启动

检查端口占用

lsof -i :8080

测试API连接

curl -X GET "http://localhost:8080/xg/studentInfo/list?pageNum=1&pageSize=10"

运行调试脚本

cd /Users/wuzhen/Documents/myworkspace/myproject/hzdyjspro/all-project/test
python3 学生信息分页查询简化调试脚本.py

第三步:查看调试日志

服务启动后,访问学生信息管理页面,然后查看后端日志中的调试信息:

关键日志位置

  • Controller日志:查找 === 学生信息分页查询开始 ===
  • Service日志:查找 === Service层分页查询开始 ===
  • SQL执行日志:查找 调试信息:开始执行自定义分页查询

预期的日志输出

=== 学生信息分页查询开始 ===
查询条件: XgStudentInfoBo(...)
分页参数: PageQuery(...)
构建的查询条件: SELECT * FROM xg_student_info WHERE deleted = 0 ORDER BY create_time DESC
=== Service层分页查询开始 ===
Service接收到的查询条件: ...
Mapper查询结果 - 总数: 3, 当前页记录数: 3
第一条记录详情: XgStudentInfoVo(...)
最终返回结果 - 总数: 3, 行数: 3
=== Service层分页查询结束 ===
查询结果总数: 3
查询结果行数: 3
第一条数据示例: XgStudentInfoVo(...)
=== 学生信息分页查询结束 ===

第四步:数据库验证

直接查询数据库

SELECT 
    id, student_no, name, gender, major_name, class_name, 
    grade, college_name, student_status, deleted, tenant_id, create_time
FROM xg_student_info 
WHERE deleted = 0 AND tenant_id = '000000'
ORDER BY create_time DESC;

预期结果

应该返回3条记录:

  • 张三 (学号: 202101001)
  • 李四 (学号: 202101002)
  • 王五 (学号: 202101003)

已添加的调试功能

1. Controller层调试日志

  • 打印接收到的查询条件和分页参数
  • 显示构建的SQL查询条件
  • 输出查询结果的总数和记录数
  • 展示第一条数据的详细信息

2. Service层调试日志

  • 跟踪Lambda查询条件的构建
  • 监控Mapper查询的执行结果
  • 记录数据转换过程

3. Mapper层优化

  • 使用自定义的selectVoPage方法
  • 明确指定所有字段的查询
  • 强制使用自定义ResultMap映射

4. 调试脚本

  • 服务器连接状态检查
  • API请求测试
  • 响应数据格式验证

可能的问题原因

1. 服务未启动

  • 症状:Connection refused错误
  • 解决:按照第一步启动后端服务

2. 多租户过滤问题

  • 症状:查询结果为空,但数据库有数据
  • 解决:确认tenant_id = '000000'

3. 字段映射问题

  • 症状:部分字段显示为null
  • 解决:已通过自定义ResultMap修复

4. MyBatis配置问题

  • 症状:查询不使用自定义映射
  • 解决:已重写selectVoPage方法

下一步操作

  1. 启动服务:使用上述方法启动后端服务
  2. 访问页面:打开学生信息管理页面
  3. 查看日志:观察控制台输出的调试信息
  4. 分析问题:根据日志信息定位具体问题
  5. 反馈结果:将日志信息提供给开发者进行进一步分析

预期修复效果

修复后,学生信息管理页面应该:

  • ✅ 显示总记录数:3
  • ✅ 显示学生列表:张三、李四、王五
  • ✅ 显示完整字段:学号、姓名、性别、专业、班级等
  • ✅ 支持分页功能
  • ✅ 支持搜索筛选

调试完成时间:2025-07-15 09:05 修改文件:

  • XgStudentInfoController.java(添加调试日志)
  • XgStudentInfoServiceImpl.java(添加调试日志)
  • XgStudentInfoMapper.java(重写分页方法)
  • XgStudentInfoMapper.xml(自定义分页查询)