好用的数据库信创改造工具

简介: 数据库信创改造工具是基于Spring Boot 3的Web应用,支持标准SQL智能转换为国产数据库(如达梦、高斯、OceanBase等)兼容语法。提供手工转换、批量扫描替换及AI深度优化(通义千问)、图片OCR识别SQL等功能,开箱即用,助力信创平滑迁移。

数据库信创改造工具

📖 项目简介

数据库信创改造工具是一个基于 Spring Boot 3 的 Web 应用,用于将标准 SQL 智能转换为国产信创数据库的兼容语法。支持手工逐条转换和批量自动扫描替换两种模式,并提供 AI 深度优化能力。

✨ 主要特性

  • 🔄 智能 SQL 转换:基于 JSqlParser 解析 AST,进行函数替换、类型映射、语法改写
  • 🤖 AI 深度优化:集成阿里云百炼(通义千问),对转换后的 SQL 进行深度优化
  • 🖼️ 图片 OCR 识别:上传包含 SQL 的图片,通过多模态视觉模型自动识别 SQL 语句
  • 📂 批量扫描:自动扫描项目目录,精准识别需要改造的 SQL(支持 Java / MyBatis XML / SQL / 配置文件)
  • 📁 文件夹选择器:可视化浏览和选择项目目录,无需手动输入路径
  • 🚀 一键改造:自动生成备份并执行批量替换

🖼️ 效果展示

手工处理

db_xc_sd.png

自动处理

db_xc_zd.png

🛠️ 技术栈

组件 技术
后端 Spring Boot 3.2, JSqlParser 4.9, OkHttp 4.12
前端 Vue 3 CDN + Element Plus CDN(纯 HTML,无构建工具)
AI 接口 阿里云百炼 OpenAI 兼容接口(qwen-max + qwen-vl-max)
构建 Maven, JDK 17+

📋 系统要求

  • JDK 17+
  • Maven 3.6+
  • 阿里云百炼 API Key(可选,用于 OCR 和 AI 优化功能)

🚀 快速开始

1. 克隆项目

git clone <repository-url>
cd db-converter-tool

2. 配置 API Key(可选)

编辑 src/main/resources/application.yml

anthropic:
  api:
    key: 你的百炼API_Key

或通过环境变量设置:

export ANTHROPIC_API_KEY=你的百炼API_Key

API Key 在 阿里云百炼控制台 获取。不配置 API Key 也可以使用基础的 SQL 转换和批量扫描功能。

3. 编译打包

mvn clean package

4. 运行应用

java -jar target/db-converter-tool-1.0.0.jar

或使用 Maven 直接运行:

mvn spring-boot:run

5. 访问应用

打开浏览器访问:http://localhost:8080

📖 使用指南

手工处理

  1. 访问首页,默认进入「手工处理」页面
  2. 上传图片(需配置 API Key):点击上传区域选择图片,系统自动通过 AI 识别 SQL
  3. 输入 SQL:在文本框中输入或粘贴 SQL 语句
  4. 选择目标数据库:从下拉框选择目标数据库
  5. AI 优化(可选,需配置 API Key):开启「启用 AI 深度优化」开关
  6. 转换:点击「转换」按钮,查看转换结果
  7. 复制结果:点击「复制」按钮复制转换后的 SQL

自动处理

  1. 点击左侧菜单「自动处理」
  2. 选择项目路径
    • 手动输入目录路径,或
    • 点击「📁 选择文件夹」按钮,在弹窗中浏览并选择目录
  3. 选择目标数据库:选择目标数据库
  4. 扫描:点击「开始扫描」按钮,等待扫描完成
  5. 查看清单:扫描完成后查看改造清单,确认每项改造内容
  6. 执行改造:点击「立即改造」按钮,确认后执行批量替换(自动创建 .bak 备份)

📊 支持的数据库

数据库 标识 说明
高斯数据库 gaussdb 华为 GaussDB
达梦数据库 dameng DM8
人大金仓 kingbase KingBase ES
OceanBase oceanbase 蚂蚁 OceanBase
TiDB tidb PingCAP TiDB
南大通用 gbase GBase 8s
神州通用 shentong ShenTong OSCAR

📡 API 接口

接口 方法 说明
/api/ocr POST 上传图片识别 SQL(需 AI)
/api/convert POST 转换 SQL
/api/optimize POST AI 优化 SQL(需 AI)
/api/databases GET 获取支持的数据库列表
/api/scan POST 启动目录扫描任务
/api/scan/progress GET 查询扫描进度
/api/replace POST 执行批量替换
/api/replace/custom POST 使用自定义清单执行替换
/api/directories GET 列出目录下的子文件夹(文件夹选择器用)

🔍 SQL 扫描能力

自动处理模式下的扫描器支持从多种文件类型中精准提取 SQL:

文件类型 扫描策略
.java @Query 注解、Text Block、SQL 字符串字面量;自动排除日志/断言等非 SQL 上下文
.xml MyBatis Mapper 标签(<select> / <insert> / <update> / <delete>),处理动态标签(<if> / <where> / <foreach> 等)
.sql 完整的 SQL 文件语句(以 ; 结尾),自动过滤注释
.properties / .yml 配置项中包含 SQL 关键字的值

扫描器内置 7 层过滤器,有效排除 FUNCTION() 占位符、控制流片段、Java 代码片段等假阳性结果。

🔧 配置说明

application.yml 配置项

# 服务端口
server:
  port: 8080

# 文件上传限制
spring:
  servlet:
    multipart:
      max-file-size: 10MB

# AI 接口配置(阿里云百炼 OpenAI 兼容接口)
anthropic:
  api:
    key: ${
   ANTHROPIC_API_KEY:YOUR_BAILIAN_API_KEY}
    base-url: ${
   ANTHROPIC_BASE_URL:https://dashscope.aliyuncs.com/compatible-mode}
    model: ${
   ANTHROPIC_MODEL:qwen-max-latest}
    vision-model: ${
   ANTHROPIC_VISION_MODEL:qwen-vl-max-latest}

# 日志配置
logging:
  level:
    com.dbconverter: DEBUG
  file:
    name: logs/db-converter.log

📁 项目结构

db-converter-tool/
├── src/
│   ├── main/
│   │   ├── java/com/dbconverter/
│   │   │   ├── DbConverterApplication.java      # 启动类
│   │   │   ├── common/                          # 通用类(Result, ConversionItem, ScanTask)
│   │   │   ├── config/                          # 全局异常处理
│   │   │   ├── controller/
│   │   │   │   ├── ManualController.java        # 手工处理 API
│   │   │   │   └── AutoController.java          # 自动处理 + 目录浏览 API
│   │   │   └── service/
│   │   │       ├── AnthropicApiService.java     # 百炼 AI 服务
│   │   │       ├── SqlConverter.java            # SQL 方言转换引擎
│   │   │       ├── FileScannerService.java      # 文件扫描服务
│   │   │       └── FileReplacerService.java     # 文件替换服务
│   │   └── resources/
│   │       ├── application.yml                  # 应用配置
│   │       └── static/                          # 前端页面
│   │           ├── index.html                   # 入口(跳转手工处理)
│   │           ├── manual.html                  # 手工处理页面
│   │           └── auto.html                    # 自动处理页面
│   └── test/                                    # 测试代码
├── pom.xml
├── README.md
└── README_EN.md

🧪 运行测试

mvn test

📝 注意事项

  1. API Key 安全:请勿将 API Key 提交到代码仓库,建议使用环境变量传入
  2. 文件备份:自动改造会创建 .bak 备份文件,请在改造前确认备份
  3. 大项目扫描:扫描大型项目可能需要一定时间,页面会实时显示进度
  4. SQL 解析:部分复杂 SQL 可能无法被 JSqlParser 完全解析,会自动降级为正则处理
  5. 目录过滤:扫描时自动跳过 target/build/.git/node_modules/.idea/ 等非业务目录

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

☕ 项目获取

如果这个项目对你有帮助,麻烦给一个star,谢谢
https://github.com/vfaner/db-converter-tool

个人 / 非商业使用免费,商业使用需获得作者授权。详见 LICENSE

相关文章
|
23天前
|
机器学习/深度学习 JSON 安全
从零搓一个语言模型,然后把它变成认知体的声带
这是一个“反着来”的硬核项目:不调包、不微调、不套壳,从张量运算手搓197万参数的轻量语言模型(62MB/73文件),专为认知体设计为“声带”——仅负责流畅表达,不替代意识与记忆。内置三层漏斗架构+34个JSON回路专家(MoE路由),OpenAI兼容接口,真正实现小模型与大模型的智能分工。(239字)
|
23天前
|
人工智能 自然语言处理 算法
2026年阿里云百炼Token Plan全解:套餐配置、接入流程与定价规则
2026年阿里云百炼平台推出的Token Plan团队版,是面向企业与团队的标准化大模型订阅方案,以统一Credits计量、三档坐席订阅、灵活共享用量为核心,覆盖团队AI办公、代码开发、模型推理、多模态交互等全场景。该方案替代传统按量计费的不确定性,提供固定月费+额度管控模式,同时兼容主流AI工具与开源智能体,接入流程标准化,是团队规模化使用大模型的优选方案。
327 0
|
运维 监控 网络协议
JAVA 线上故障排查完整套路,从 CPU、磁盘、内存、网络、GC
JAVA 线上故障排查完整套路,从 CPU、磁盘、内存、网络、GC
1562 0
|
24天前
|
存储 监控 对象存储
基于 YOLO11 的学生课堂行为检测:从数据集管理到云上训练实践
本文介绍基于YOLO11的学生课堂行为检测全流程实践,涵盖8类行为的数据集构建、Label Studio标注规范、云上(OSS)版本化存储管理,以及云端训练、评估与边缘部署优化,助力智慧课堂落地。
基于 YOLO11 的学生课堂行为检测:从数据集管理到云上训练实践
|
23天前
|
人工智能 自然语言处理 API
2026夜间AI高效开发指南:阿里云百炼Night Plan功能与接入实操
2026年阿里云百炼Night Plan是平台推出的**夜间错峰专属算力订阅方案**,主打夜间低峰时段高性价比大模型调用权益,专门适配习惯夜间开发、调试、内容创作、长文本处理与模型测试的用户。该套餐属于补充型算力权益,区别于Token Plan、Coding Plan的全天候通用模式,依托夜间算力闲置资源,提供更优惠的计费标准与更宽松的调用并发,能够有效帮助用户错峰降低AI使用成本,缓解日间高峰限流、排队、算力紧张等问题,是2026年百炼平台分层算力体系的重要组成部分。
103 0
|
23天前
|
数据采集 安全 网络安全
政务许可定向钓鱼攻击特征识别与闭环防御技术研究 —— 基于麦迪逊市酒类经营商户诈骗预警案例
本文以美国麦迪逊市2026年酒类许可定向钓鱼案为样本,剖析政务数据泄露驱动的精准诈骗链路,构建融合域名认证、URL检测与语义识别的轻量化多维风险检测模型(Python实现),并提出“技术拦截—制度约束—商户赋能”三层协同闭环防御体系,为全球政务经营许可类反钓鱼提供实证方案。(239字)
124 6
|
23天前
|
人工智能 IDE 开发工具
2026年阿里云Qoder CN编程智能体全解:核心配置、接入流程与定价体系说明
2026年阿里云Qoder CN作为本土化专业AI编程智能体,完成产品体系全面升级,整合多端编程工具、智能代码理解、跨文件工程重构、私域知识库适配等核心能力,是面向个人开发者、研发团队、企业技术部门打造的全栈式智能编程平台。区别于通用对话大模型,Qoder CN深度适配国内开发习惯、代码规范与工程场景,依托百炼大模型生态,兼容多款主流国产大模型,搭配分层清晰的订阅定价与轻量化接入流程,可覆盖零基础代码学习、日常工程开发、大型项目迭代、企业规范化研发等全维度场景,成为当前本土化AI编程工具的核心代表。
487 4
|
23天前
|
弹性计算 人工智能 运维
自进化AI代理落地攻略:阿里云ECS部署Hermes Agent与百炼APIKEY接入详解
Hermes Agent是具备自主进化能力的终端AI智能体,主打长周期任务拆解、多步骤自主执行、持久记忆迭代,能够自主完成复杂代码重构、项目调研、文档梳理、自动化任务运维等高阶工作。相较于普通对话工具,Hermes Agent拥有更强的任务容错能力与自我优化机制,长期使用可不断适配用户业务习惯。依托阿里云ECS云服务器部署Hermes Agent,能够实现全天候稳定在线运行,摆脱本地设备限制,搭配百炼大模型体系,可快速搭建专属云端自进化AI智能服务,适合开发者、科研人员与技术团队长期使用。
97 2
|
23天前
|
存储 NoSQL 开发工具
阿里云表格存储Tablestore对接使用完全指南:从入门到实战
本文提供了一份完整的阿里云表格存储Tablestore对接使用指南。Tablestore是阿里云自研的Serverless化NoSQL多模型数据库服务,提供宽表、时序、消息三种数据模型。文章首先介绍Tablestore的产品定位与核心优势,然后详细说明开通服务、创建实例、获取访问凭证等准备工作。接着深入讲解Java、Python、Node.js、Go四种主流语言的SDK安装与客户端初始化,并给出数据表创建、单行与批量读写、条件更新与删除等核心操作的完整代码示例。高级功能部分重点介绍多元索引的创建与使用、通道服务实现数据实时消费、时序模型处理物联网数据,以及全局二级索引与局部事务等特性。最后阐述
|
23天前
|
弹性计算 缓存 网络协议
阿里云ECS云服务器部署Nginx后端:内核与Nginx双层并发优化完整指南
本文系统阐述在阿里云ECS云服务器上部署Nginx作为后端服务时,如何从操作系统内核与Nginx应用层两个维度进行完整的并发性能优化。文章首先分析ECS实例规格选型对并发能力的基础影响,随后深入讲解Linux内核TCP/IP参数调优,包括文件描述符限制、TIME_WAIT复用、SYN队列、TCP缓冲区、BBR拥塞控制算法等核心配置。在Nginx层面,详细拆解worker_processes、worker_connections、事件驱动模型、keepalive长连接、缓冲区大小、Gzip压缩、静态资源缓存、open_file_cache等关键参数的配置逻辑与最佳实践。此外,还涵盖安全组策略、监