一个功能强大的图形化数据库转换工具,支持 SQLite 和 MySQL 数据库之间的双向转换。
A powerful graphical database conversion tool that supports bidirectional conversion between SQLite and MySQL databases.
- 🔄 双向转换: 支持 SQLite 到 MySQL 和 MySQL 到 SQLite 的转换
- 🖱️ 拖拽支持: 支持直接拖拽 SQLite 文件到应用程序
- 🎨 现代化界面: 基于 Swing 的美观用户界面
- 📊 实时进度: 显示详细的迁移进度和状态
- 📝 日志记录: 完整的操作日志和错误信息
- ⚡ 高性能: 批量处理和优化的数据传输
- 🔧 灵活配置: 可选择迁移数据、结构或两者
- Java 21 或更高版本
- Windows/Linux/macOS 操作系统
- 至少 512MB 可用内存
-
克隆项目
git clone https://github.com/yourusername/DBBridge.git cd DBBridge -
编译项目
mvn clean compile
-
运行应用程序
mvn exec:java -Dexec.mainClass="com.dbconverter.Main"
mvn clean package生成的 JAR 文件位于 target/ 目录下,可以直接运行:
java -jar target/db-converter-1.0-SNAPSHOT-shaded.jar-
选择源数据库
- 选择 "SQLite" 作为源数据库类型
- 点击 "浏览..." 选择 SQLite 文件,或直接拖拽文件到拖拽区域
-
配置目标数据库
- 选择 "MySQL" 作为目标数据库类型
- 填写 MySQL 连接信息(主机、端口、数据库名、用户名、密码)
- 点击 "测试连接" 验证连接
-
开始转换
- 选择迁移选项(数据、结构、删除已存在的表)
- 点击 "开始迁移" 按钮
- 观察进度条和日志输出
-
选择源数据库
- 选择 "MySQL" 作为源数据库类型
- 填写 MySQL 连接信息并测试连接
-
配置目标数据库
- 选择 "SQLite" 作为目标数据库类型
- 点击 "浏览..." 选择输出 SQLite 文件路径
-
开始转换
- 配置迁移选项
- 点击 "开始迁移" 按钮
- DatabaseManager: 数据库连接管理
- SchemaAnalyzer: 数据库结构分析
- SqlConverter: SQL 语法转换引擎
- DataMigrator: 数据迁移核心逻辑
- MainController: GUI 界面控制器
- Java 21: 核心开发语言
- Swing: 图形用户界面框架
- JDBC: 数据库连接
- Maven: 项目构建和依赖管理
- SLF4J + Logback: 日志记录
- SQLite JDBC: SQLite 数据库驱动
- MySQL Connector/J: MySQL 数据库驱动
| SQLite 类型 | MySQL 类型 |
|---|---|
| INTEGER | INT |
| REAL | DOUBLE |
| TEXT | TEXT |
| BLOB | BLOB |
| NUMERIC | DECIMAL |
| MySQL 类型 | SQLite 类型 |
|---|---|
| INT, BIGINT | INTEGER |
| FLOAT, DOUBLE | REAL |
| VARCHAR, TEXT | TEXT |
| BLOB | BLOB |
| DECIMAL | NUMERIC |
- 迁移数据: 复制表中的所有数据
- 迁移结构: 复制表结构、索引和约束
- 删除已存在的表: 在创建新表前删除目标数据库中的同名表
- 批处理大小: 1000 行/批次
- 提交间隔: 5000 行
- 连接池: 自动管理
-
连接失败
- 检查数据库服务是否运行
- 验证连接参数(主机、端口、用户名、密码)
- 确保防火墙允许连接
-
内存不足
- 增加 JVM 堆内存:
-Xmx2g - 处理大型数据库时分批迁移
- 增加 JVM 堆内存:
-
字符编码问题
- 确保数据库使用 UTF-8 编码
- 检查特殊字符的处理
应用程序日志保存在 logs/db-converter.log 文件中,包含详细的操作记录和错误信息。
src/
├── main/
│ ├── java/
│ │ └── com/dbconverter/
│ │ ├── Main.java # 应用程序入口
│ │ ├── converter/ # 转换器模块
│ │ │ ├── DataMigrator.java # 数据迁移器
│ │ │ └── SqlConverter.java # SQL转换器
│ │ ├── db/ # 数据库模块
│ │ │ ├── DatabaseManager.java # 数据库管理器
│ │ │ └── SchemaAnalyzer.java # 结构分析器
│ │ ├── model/ # 数据模型
│ │ │ ├── ColumnInfo.java # 列信息
│ │ │ ├── IndexInfo.java # 索引信息
│ │ │ └── TableInfo.java # 表信息
│ │ └── ui/ # 用户界面
│ └── MainFrame.java # 主界面
│ └── resources/
│ ├── icons/
│ │ └── app-icon.svg # 应用图标
│ └── logback.xml # 日志配置
└── pom.xml # Maven配置
- Fork 项目
- 创建功能分支
- 提交更改
- 推送到分支
- 创建 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 🎉 初始版本发布
- ✨ 支持 SQLite 和 MySQL 双向转换
- 🎨 现代化 Swing 用户界面
- 🖱️ 文件拖拽支持
- 📊 实时进度显示
- 📝 完整的日志记录
如果您遇到问题或有功能建议,请:
开发者: [Your Name] 邮箱: [your.email@example.com] 项目主页: https://github.com/yourusername/DBBridge