You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

163 lines
5.1 KiB

# 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