# dbor **Repository Path**: jtool/dbor ## Basic Information - **Project Name**: dbor - **Description**: 在终端中交互式使用的数据库工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-11 - **Last Updated**: 2026-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## dbor - 终端数据库查询 REPL 工具 ### 简介 `dbor` 是一个在终端中运行的 **交互式数据库查询工具**,当前优先支持 **PostgreSQL**,采用 **Java 1.8** 开发。 主要能力: - 管理多套数据库连接配置(本地 JSON 持久化)。 - 在 REPL 中执行 SQL(支持多行、自动格式化结果为表格)。 - 快速浏览数据库元数据: - 数据库清单 / Schema 清单 - 表清单、表字段信息 - 视图清单 - 函数和存储过程清单 - 支持命令行历史(↑ / ↓ 切换历史命令),中文界面提示。 - **V1.1**:SQL 输入中 `schema.` 后按 Tab 补全表名/视图名;`:set` 可设置结果最大行数、连接保活间隔(持久化到 `~/.dbor/settings.json`)。 更多设计细节见 `docs/requirements.md` 与 `docs/framework.md`。 --- ### 构建与运行 #### 环境要求 - JDK 1.8+ - Maven 3.6+ #### 编译打包 在项目根目录执行: ```bash mvn -q -DskipTests package ``` 生成的可执行 JAR 位于: - `target/dbor-1.1.0-jar-with-dependencies.jar` #### 启动 方式一(推荐): ```bash ./run.sh ``` 方式二: ```bash java -jar target/dbor-1.1.0-jar-with-dependencies.jar ``` 启动后会进入 REPL,提示符形如: ```text (未连接) db=? schema=? > ``` --- ### 基本使用 #### 1. 连接管理 - 列出连接: ```text :conn list ``` - 新增连接(按提示依次输入名称 / host / port / database / 用户名 / 密码等): ```text :conn add ``` - 编辑连接: ```text :conn edit ``` - 删除连接: ```text :conn del ``` - 查看详情: ```text :conn show ``` - 测试连接: ```text :conn test :conn test # 测试当前连接 ``` #### 2. 切换连接 / 数据库 / Schema - 切换当前连接并建立 JDBC 连接: ```text :use ``` - 切换数据库(同一实例): ```text :use-db ``` - 切换当前 schema(PostgreSQL `search_path`): ```text :use-schema ``` REPL 提示符会显示当前连接名、数据库和 schema,例如: ```text dev-pg-local db=postgres schema=public > ``` #### 3. 执行 SQL - 直接输入 SQL(不以 `:` 开头): ```sql select * from my_table where id < 10; ``` - 支持多行输入,以分号 `;` 结束一条语句后执行。 - 查询结果以文本表格形式输出: - 自动计算列宽。 - 默认最多显示 200 行,超出会提示“结果已截断”。 - 长文本自动截断并以 `...` 表示。 - 每次执行结束后会显示执行耗时与返回/影响行数。 #### 4. 浏览元数据 在已连接数据库的前提下: - 数据库清单: ```text :meta dbs ``` - Schema 清单: ```text :meta schemas ``` - 表清单(可指定 schema): ```text :meta tables :meta tables ``` - 表字段信息: ```text :meta table :meta table .
``` - 视图清单: ```text :meta views :meta views ``` - 函数 / 存储过程清单: ```text :meta routines :meta routines ``` #### 5. 设置(:set) - 查看当前设置:`:set` - 结果集最大展示行数(1–10000):`:set max-rows 500` - 连接保活间隔(秒,0=不保活):`:set keep-alive-seconds 60` 设置保存到 `~/.dbor/settings.json`,下次启动生效。保活超时后连接会关闭,下次执行 SQL 或 `:use` 时再建新连接。 #### 6. REPL 常用操作 - 查看帮助: ```text :help ``` - 退出: ```text :quit :exit ``` - 历史命令: - `↑` / `↓`:浏览并回放历史命令/SQL。 - `Ctrl+C`:取消当前输入行。 - `Ctrl+D`:退出程序。 - SQL 补全:输入 `schema.` 后按 **Tab** 可补全该 schema 下的表名和视图名。 --- ### 代码结构概览 核心包结构(groupId: `ren.wxyz`): - `ren.wxyz.dbor.app`:入口与 REPL 主循环。 - `ren.wxyz.dbor.config`:连接配置与本地 JSON 持久化。 - `ren.wxyz.dbor.db`:连接管理、数据库类型与 PostgreSQL 方言实现。 - `ren.wxyz.dbor.meta`:元数据领域模型与查询服务。 - `ren.wxyz.dbor.sql`:SQL 执行与结果表格输出。 详细说明可参考: - `docs/framework.md`:程序框架说明。 - `docs/requirements.md`:需求与设计说明。 - `docs/user-guide.md`:更详细的使用手册。