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

158 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 学生信息分页查询问题调试指导
## 问题现象
- 学生信息管理列表页面显示空白
- 数据库中有3条学生记录,但前端页面无法显示
## 调试步骤
### 第一步:启动后端服务
#### 方法1:使用启动脚本(推荐)
```bash
cd /Users/wuzhen/Documents/myworkspace/myproject/hzdyjspro/all-project
chmod +x start-backend.sh
./start-backend.sh
```
#### 方法2:手动启动
```bash
cd /Users/wuzhen/Documents/myworkspace/myproject/hzdyjspro/all-project/backend
mvn spring-boot:run -Dspring-boot.run.profiles=dev
```
#### 方法3:使用热启动脚本
```bash
cd /Users/wuzhen/Documents/myworkspace/myproject/hzdyjspro/all-project/backend
./hot-start.sh
```
### 第二步:验证服务启动
#### 检查端口占用
```bash
lsof -i :8080
```
#### 测试API连接
```bash
curl -X GET "http://localhost:8080/xg/studentInfo/list?pageNum=1&pageSize=10"
```
#### 运行调试脚本
```bash
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(...)
=== 学生信息分页查询结束 ===
```
### 第四步:数据库验证
#### 直接查询数据库
```sql
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(自定义分页查询)