# MyBatis Mapper XML文件部署指南(含性能优化) ## 文件状态确认 ✅ 所有MyBatis Mapper XML映射文件已成功复制到构建目录 ### Mapper XML文件(最后修改时间与源代码一致) - 源文件位置:`src\main\resources\mapper` - 构建后位置:`target\classes\mapper` - 文件数量:16个XML文件 - 包含:Cart_itemsMapper.xml、EnterpriseMapper.xml、ManagersMapper.xml等所有必要的MyBatis映射文件 ## 部署方案 ### 方案一:完整WAR包部署(推荐) 这种方法最安全、最可靠,确保所有组件版本一致。 1. **准备WAR文件** ```bash # 确保WAR文件已生成 ls -la target/DL.war ``` 2. **上传WAR文件到服务器** ```bash # 使用SCP上传文件 scp target/DL.war user@server:/path/to/tomcat/webapps/ ``` 3. **设置文件权限** ```bash # 在服务器上执行 sudo chown tomcat:tomcat /path/to/tomcat/webapps/DL.war sudo chmod 644 /path/to/tomcat/webapps/DL.war ``` 4. **重启Tomcat服务** ```bash # 在服务器上执行 sudo systemctl restart tomcat # 或者 sudo service tomcat restart # 或者直接使用Tomcat的脚本 /path/to/tomcat/bin/shutdown.sh /path/to/tomcat/bin/startup.sh ``` ### 方案二:仅更新Mapper XML文件(中等风险) 如果只修改了Mapper XML文件,可以只更新这些文件,但要注意版本兼容性问题。 1. **在服务器上定位目标目录** ```bash # 在服务器上执行,找到应用部署目录 cd /path/to/tomcat/webapps/DL/WEB-INF/classes/mapper/ ``` 2. **备份当前文件** ```bash # 在服务器上执行 mkdir -p ~/backup/mapper_xml cp -r * ~/backup/mapper_xml/ ``` 3. **上传新的XML文件** ```bash # 上传所有XML文件 scp target/classes/mapper/*.xml user@server:/path/to/tomcat/webapps/DL/WEB-INF/classes/mapper/ ``` 4. **设置文件权限** ```bash # 在服务器上执行 sudo chown -R tomcat:tomcat /path/to/tomcat/webapps/DL/WEB-INF/classes/mapper/ sudo chmod 644 /path/to/tomcat/webapps/DL/WEB-INF/classes/mapper/*.xml ``` 5. **重载应用** - 方法1:重启Tomcat(最可靠) ```bash sudo systemctl restart tomcat ``` - 方法2:使用Tomcat Manager重新加载应用(较快) ```bash # 使用curl命令重新加载应用 curl -u username:password "http://localhost:8080/manager/text/reload?path=/DL" ``` ## 性能优化内容 1. **SQL查询优化**: - 将SELECT *查询替换为显式字段列表 - 移除不必要的连接操作 2. **分页功能**: - 添加selectAllManagersWithPagination方法实现分页查询 - 新增getManagersCount方法获取总数 3. **二级缓存配置**: - 为ManagersMapper添加LRU二级缓存 4. **数据库索引**: - 为关键字段创建索引,提升查询性能 - 详细索引创建脚本请参考CREATE_OPTIMIZATION_INDEXES.sql ## 验证部署 1. **检查Tomcat日志** ```bash # 在服务器上执行 tail -f /path/to/tomcat/logs/catalina.out ``` 2. **测试数据库操作** - 访问负责人管理页面,验证分页功能是否正常 - 测试数据查询操作,确认响应速度提升 - 检查应用日志,确保没有错误 - 监控数据库性能,确认索引正常使用 ## 回滚方案 如果遇到问题,按照以下步骤回滚: 1. **方案一回滚** ```bash # 在服务器上执行 sudo rm -f /path/to/tomcat/webapps/DL.war sudo rm -rf /path/to/tomcat/webapps/DL/ # 上传之前的备份WAR文件 scp backup/DL.war user@server:/path/to/tomcat/webapps/ sudo chown tomcat:tomcat /path/to/tomcat/webapps/DL.war sudo systemctl restart tomcat ``` 2. **方案二回滚** ```bash # 在服务器上执行 cp -r ~/backup/mapper_xml/* /path/to/tomcat/webapps/DL/WEB-INF/classes/mapper/ sudo systemctl restart tomcat ``` ## 注意事项 1. **版本兼容性**:确保Mapper XML的修改与对应的Java接口兼容 2. **SQL语法检查**:部署前确认XML中的SQL语句语法正确 3. **数据库结构**:如果SQL修改涉及表结构变更,请先执行数据库迁移 4. **缓存清理**:MyBatis可能缓存映射文件,重启Tomcat可以确保清除缓存 5. **事务一致性**:特别注意涉及多个Mapper的事务操作 6. **参数类型**:确保XML中定义的参数类型与Java代码中的参数类型匹配 7. **数据库备份**:确保在部署前备份数据库 8. **索引优化**:部署新版本后务必执行数据库索引优化脚本 9. **分页验证**:验证分页功能是否正常工作 10. **性能监控**:持续监控数据库查询性能,必要时进行进一步优化 ## 后续维护建议 1. **版本控制**:对Mapper XML文件进行版本控制,记录每次变更 2. **自动化部署**:考虑使用CI/CD工具自动化部署过程 3. **监控查询性能**:部署后监控查询性能,特别是对于复杂的SQL语句 4. **备份策略**:建立定期备份策略,包括数据库和应用配置 --- 此指南由自动化工具生成,最后更新时间:2025/11/6