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
163 lines
5.1 KiB
|
3 months ago
|
# 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
|