# dataConvertSQL2005 **Repository Path**: ln_yubing/data-convert-sql2005 ## Basic Information - **Project Name**: dataConvertSQL2005 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: addDtuConvert - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-07 - **Last Updated**: 2025-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据同步应用程序 ## 功能说明 这是一个简单的数据同步应用程序,用于从SQL Server 2005同步数据到MySQL。 ### 同步任务 1. **任务1**: 从 `Cat1_SdGx.tbl_cat1_meter_record_current` 同步到 `wm_user_meter` - Upsert操作:如果imei唯一索引存在则更新其他字段,不存在则插入新记录 - 分页处理:每1000条数据为一批,避免内存溢出 - 使用MySQL的 `ON DUPLICATE KEY UPDATE` 语法 - 唯一索引:imei字段 - 字段映射:signal→signal_level, positive_cumulative_data→positive_data, negative_cumulative_data→negative_data - dept_id统一置为NULL,不保留memo2~memo5字段 2. **任务2**: 根据 `wm_user_meter` 中 `dept_id` 不为空的记录的 `id`,从 `Cat1_SdGx.tbl_cat1_meter_record_history` 同步到 `wm_meter_receive_data` - 增量同步:使用 `wm_sync_status` 表记录时间戳,按时间增量查询 - 分页处理:用户ID每100个为一批,每个用户的历史记录每1000条为一批 - 查询条件:`row_id = 用户ID AND up_time > 上次同步时间` - 自动更新同步时间戳 ### 手动同步功能 - 按 `s` 键:手动触发同步(不影响定时同步) - 程序退出:只能通过 `Ctrl+C` 退出(生产环境安全考虑) ## 配置说明 编辑 `src/main/resources/application.yml` 文件: ```yaml # SQL Server配置 sqlServerUrl: jdbc:jtds:sqlserver://你的服务器:端口/数据库名;instance=SQLEXPRESS sqlServerUsername: 用户名 sqlServerPassword: 密码 # MySQL配置 mysqlUrl: jdbc:mysql://你的服务器:端口/数据库名?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8 mysqlUsername: 用户名 mysqlPassword: 密码 # 同步配置 syncCron: "0 0 8 * * ?" # 每天8点执行,可自定义cron表达式 syncEnabled: true # 启用同步 ``` ## 运行方式 ### 1. 编译项目 ```bash mvn clean compile ``` ### 2. 运行应用程序 ```bash mvn spring-boot:run ``` ### 3. 打包运行 ```bash mvn clean package java -jar target/dataConverSQL2005-1.0-SNAPSHOT.jar ``` ## 错误处理 应用程序包含详细的错误提示和处理: - ✅ 配置验证:启动时检查所有必要配置 - 🔍 连接验证:验证数据库连接是否正常 - 📊 同步统计:显示插入、更新、错误数量 - 💡 错误提示:提供具体的错误原因和解决建议 - 🔄 分页处理:避免大数据量导致的内存溢出 - 📈 进度提示:每1000条数据显示处理进度 ## 日志说明 - 🚀 启动信息 - ✅ 成功操作 - ❌ 错误信息 - ⚠️ 警告信息 - 📊 统计信息 - 💡 提示信息 ## 项目结构 ``` src/main/java/com/lncg/ ├── config/ │ ├── AppConfig.java # 应用程序配置 │ └── DataSourceConfig.java # 数据源配置 ├── service/ │ └── SyncService.java # 同步服务 └── DataConverApplication.java # 主应用程序 ``` ## 注意事项 1. 确保SQL Server和MySQL服务正常运行 2. 确保数据库用户有足够的权限 3. 检查网络连接是否正常 4. 验证表名和字段名是否正确 5. 注意时区设置,建议使用Asia/Shanghai