# 重启后端服务指南 ## 问题确认 后端日志显示执行的 SQL: ```sql UPDATE vehicle SET license_plate=?, ..., update_time=?, updated_by=? WHERE id=? AND is_delete=0 ``` **这是旧代码!** 说明后端服务没有重启,还在使用旧的编译版本。 ## 解决步骤 ### 方法1:IDEA 重启服务(推荐) 1. **停止当前运行的服务** - 在 IDEA 底部找到 "Run" 或 "Services" 窗口 - 找到正在运行的 Spring Boot 应用 - 点击红色方块按钮 ⬛ 停止服务 2. **清理编译缓存**(可选但推荐) - IDEA 菜单:`Build` → `Clean Project` - 或者:`Build` → `Rebuild Project` 3. **重新启动服务** - 点击绿色三角按钮 ▶️ 启动服务 - 等待服务启动完成(看到 "Started Application" 日志) ### 方法2:命令行重启 #### Windows PowerShell ```powershell # 1. 停止后端服务(找到 Java 进程并结束) tasklist | findstr java # 记下 PID,例如 21056 # 2. 结束进程 taskkill /F /PID 21056 # 3. 清理并重新编译 cd C:\cattleTransport\tradeCattle mvn clean package -DskipTests # 4. 重新启动服务 cd aiotagro-cattle-trade java -jar target\aiotagro-cattletrade-1.0.1.jar ``` #### Linux/Mac ```bash # 1. 找到并停止 Java 进程 ps aux | grep java kill -9 # 2. 清理并重新编译 cd /path/to/tradeCattle mvn clean package -DskipTests # 3. 重新启动服务 cd aiotagro-cattle-trade java -jar target/aiotagro-cattletrade-1.0.1.jar ``` ### 方法3:使用 Spring Boot DevTools(如果已配置) 如果项目配置了 Spring Boot DevTools: - 保存文件后会自动重启 - 但完全替换方法时,建议手动重启 ## 验证步骤 ### 1. 检查后端日志 重启后,后端应该显示新的启动日志: ``` Started Application in X.XXX seconds ``` ### 2. 测试删除功能 1. 刷新前端页面(Ctrl+F5) 2. 进入"车辆管理"页面 3. 点击"删除"按钮 4. 观察后端日志 ### 3. 期望的日志输出 **新代码应该显示**: ``` [VEHICLE-DELETE] 开始逻辑删除车辆,ID: 3 [VEHICLE-DELETE] 车辆信息 - 车牌号: 鄂A 66662, 当前 is_delete: 0 UPDATE vehicle SET is_delete=1 WHERE id=3 [VEHICLE-DELETE] ✅ 逻辑删除成功,车牌号: 鄂A 66662, 操作人ID: 11 ``` **关键点**: - ✅ SQL 中只有 `SET is_delete=1` - ✅ 没有更新 `license_plate`, `car_front_photo` 等其他字段 - ✅ 日志显示 `[VEHICLE-DELETE]` 标签 ### 4. 验证数据库 ```sql -- 查看该记录 SELECT id, license_plate, is_delete, update_time FROM vehicle WHERE id = 3; -- 预期结果:is_delete = 1 ``` ### 5. 验证前端列表 - ✅ 列表自动刷新 - ✅ 已删除的车辆不再显示 - ✅ 显示"删除成功"提示 ## 常见问题 ### Q1: 找不到正在运行的服务? **检查**: ```powershell # Windows netstat -ano | findstr :16200 # 查看哪个进程占用了 16200 端口 # 结束进程 taskkill /F /PID <进程ID> ``` ### Q2: Maven 编译失败? **清理并重试**: ```powershell cd C:\cattleTransport\tradeCattle mvn clean mvn compile -DskipTests ``` ### Q3: 重启后还是旧代码? **可能原因**: 1. IDEA 没有自动编译 - 解决:`Build` → `Rebuild Project` 2. 启动了错误的配置 - 解决:检查 Run Configuration 3. 类加载器缓存 - 解决:完全关闭 IDEA 并重新打开 ### Q4: 端口被占用? ```powershell # 查看占用端口的进程 netstat -ano | findstr :16200 # 结束进程 taskkill /F /PID <进程ID> ``` ## 快速重启脚本 ### Windows (PowerShell) 创建 `restart-backend.ps1`: ```powershell # 停止后端服务 $process = Get-Process | Where-Object {$_.ProcessName -eq "java" -and $_.MainWindowTitle -like "*cattletrade*"} if ($process) { Stop-Process -Id $process.Id -Force Write-Host "已停止后端服务" } # 重新编译 cd C:\cattleTransport\tradeCattle mvn clean compile -DskipTests # 重新启动(在 IDEA 中手动启动) Write-Host "编译完成,请在 IDEA 中重新启动服务" ``` 运行: ```powershell powershell -ExecutionPolicy Bypass -File restart-backend.ps1 ``` ## 总结 ✅ **关键步骤**: 1. 停止后端服务 2. 清理编译缓存(可选) 3. 重新启动服务 4. 验证日志输出 ✅ **验证标志**: - 日志显示 `UPDATE vehicle SET is_delete=1` - 数据库中 `is_delete` 变为 `1` - 前端列表中记录消失 ⚠️ **注意**: - 必须完全停止旧服务 - 确保编译成功 - 验证新代码是否生效