# DatabaseClient-CLI **Repository Path**: qiqi_chen/DatabaseClient-CLI ## Basic Information - **Project Name**: DatabaseClient-CLI - **Description**: 一个轻量级的跨平台数据库命令行客户端工具,支持多种数据库类型的连接和管理。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-21 - **Last Updated**: 2025-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DatabaseClient-CLI 一个轻量级的跨平台数据库命令行客户端工具,支持多种数据库类型的连接和管理。 ## 项目介绍 DatabaseClient-CLI 是一个基于Java开发的数据库命令行工具,旨在提供一个简单、安全、高效的数据库管理体验。它支持多种数据库类型,提供了类似MySQL命令行的交互体验,并增加了许多实用的功能特性。 ### 主要特性 - 🔒 安全的配置管理:支持配置文件加密存储,保护敏感信息 - 🔌 灵活的数据库连接:支持动态加载数据库驱动 - 📝 SQL历史记录:支持通过方向键快速调用历史SQL语句 - 📊 美观的结果展示:查询结果以表格形式展示,支持中文对齐 - 🛠 数据库管理工具:支持数据库和表的创建、修改、删除等操作 ## 快速开始 ### 环境要求 - JDK 8 或更高版本 - Maven 3.6 或更高版本 ### 安装步骤 1. 克隆项目到本地 ## 技术架构 ### 核心模块 - **命令处理模块** (`com.cqq.command`) - 处理配置命令 - 实现命令注册和执行框架 - 支持自定义命令扩展 - **数据库连接模块** (`com.cqq.core`) - 管理数据库连接生命周期 - 支持动态驱动加载 - 连接池管理 - **安全模块** (`com.cqq.security`) - 配置文件加密解密 - 敏感信息保护 - 加密算法可配置 - **终端交互模块** (`com.cqq.terminal`) - 命令行界面实现 - SQL执行和结果展示 - 历史记录管理 ### 目录结构 ``` src/main/java/com/cqq/ ├── command/ │ ├── ConfigCommand.java # 配置命令实现 │ ├── CommandExecutor.java # 命令执行器 │ └── UpdateConfigCommand.java # 配置更新命令 ├── core/ │ ├── DatabaseConnector.java # 数据库连接管理 ├── security/ │ ├── ConfigEncryption.java # 配置加密实现 │ └── EncryptionUtil.java # 加密工具类 ├── terminal/ │ ├── DatabaseTerminal.java # 终端主程序 │ ├── SQLHistory.java # SQL历史记录 │ └── hint/ # 命令提示实现 └── Main.java # 程序入口 ``` ## 开发计划 ### 已完成功能 - ✅ 配置文件生成和加密 - ✅ 数据库连接管理 - ✅ 交互式终端 - ✅ SQL历史记录 - ✅ 查询结果表格展示 ### 开发中功能 - 🚧 配置文件解密显示 - 🚧 配置文件更新命令 - 🚧 命令提示功能 - 🚧 数据库管理功能 ## 使用示例 ### 配置数据库连接 ```bash $ java -jar database-client.jar create D:\\conn-info.json 请配置数据库连接信息: 请输入数据库URL: jdbc:mysql://localhost:3306/test 请输入用户名: test 请输入密码: test123 请输入驱动jar文件路径: D:\code\java\data-bridge\src\test\resources\lib\mysql-connector-java-5.1.49.jar 请输入驱动类名: com.mysql.jdbc.Driver 配置文件已生成: D:\conn-info.json ``` ### 执行SQL查询 ```bash $ java -jar database-client.jar use D:\conn-info.json 欢迎使用数据库终端,输入 'exit' 或 'quit' 退出 使用上下箭头键可以浏览历史SQL命令 sql> mysql> SELECT * FROM users; +----+----------+-------------+ | id | username | email | +----+----------+-------------+ | 1 | admin | admin@ex.com| | 2 | user1 | user1@ex.com| +----+----------+-------------+ 2 rows in set (0.01 sec) ``` ## 调试与开发 ### 编译项目 ```bash mvn clean install ``` ### 运行测试 ```bash mvn test ``` ## 常见问题 ### 1. 中文显示乱码 请确保终端支持UTF-8编码,可通过设置环境变量 `JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8` 解决。 ## 参与贡献 1. Fork 本仓库 2. 新建 feature_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 联系方式 - 项目地址:https://gitee.com/qiqi_chen/DatabaseClient-CLI - Issues:https://gitee.com/qiqi_chen/DatabaseClient-CLI/issues ## 致谢 感谢所有为这个项目做出贡献的开发者们! ## 更新日志 ### v0.1.0 (2024-03-20) - 实现基础的数据库连接功能 - 添加配置文件加密功能 - 实现SQL历史记录 - 添加表格式结果显示 ### v0.2.0 (开发中) - 添加命令提示功能 - 实现配置文件管理命令 - 增加数据库管理功能