4.4 KiB
4.4 KiB
学生信息分页查询问题调试指导
问题现象
- 学生信息管理列表页面显示空白
- 数据库中有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方法
下一步操作
- 启动服务:使用上述方法启动后端服务
- 访问页面:打开学生信息管理页面
- 查看日志:观察控制台输出的调试信息
- 分析问题:根据日志信息定位具体问题
- 反馈结果:将日志信息提供给开发者进行进一步分析
预期修复效果
修复后,学生信息管理页面应该:
- ✅ 显示总记录数:3
- ✅ 显示学生列表:张三、李四、王五
- ✅ 显示完整字段:学号、姓名、性别、专业、班级等
- ✅ 支持分页功能
- ✅ 支持搜索筛选
调试完成时间:2025-07-15 09:05 修改文件:
- XgStudentInfoController.java(添加调试日志)
- XgStudentInfoServiceImpl.java(添加调试日志)
- XgStudentInfoMapper.java(重写分页方法)
- XgStudentInfoMapper.xml(自定义分页查询)