本文是「geejing WebBuilder 快速开发平台」管理运维,预计阅读时间 8 分钟。数据是系统的命根子,而数据库连接配置和数据查询工具就是管这条命脉的两个阀门。本篇基于 admin 模块组里的数据库连接(DBC)与数据库执行(DBE)工具,全部截图来自实际运行环境。
一、平台怎么管理数据库连接
geejing WebBuilder 快速开发平台内置了数据库连接池管理,所有连接定义集中在一个地方维护------"数据库连接"工具(admin/dbc)。打开后左侧是连接列表,右侧是配置表单:

截图里是系统默认的 system 连接------平台自身的数据就存在这个连接里。可以看到它用的是内嵌 Derby 数据库:
- driverClassName :
org.apache.derby.jdbc.EmbeddedDriver
- url :
jdbc:derby:$wb/system/db/derby;create=true
其中 $wb 是平台根目录变量,create=true 表示库不存在时自动建库。开发演示用内嵌库没问题,正式上线务必换成 MySQL、Oracle、SQL Server 这类独立数据库------内嵌库跟着 war 包目录走,不方便备份、不支持多实例、性能上限也低。
二、配置表单的三个分区
右侧表单从上到下分三个区,正好对应 JDBC 连接的三个层面:
第一区:常规。 名称、描述、驱动类、URL、用户名、密码、连接属性,以及一个 disableConnectionPooling 开关。日常配置主要动这一区:换数据库就是改驱动类和 URL 两行。
第二区:连接。 事务与行为相关的高级参数:
|-----------------------------|-----------------|
| 参数 | 作用 |
| defaultAutoCommit | 连接默认是否自动提交事务 |
| defaultReadOnly | 连接默认是否只读 |
| defaultTransactionIsolation | 默认事务隔离级别 |
| defaultQueryTimeout(s) | 查询超时秒数 |
| autoCommitOnReturn | 归还连接时是否自动提交未决事务 |
| rollbackOnReturn | 归还连接时是否回滚未决事务 |
后两个"归还时"参数是连接池的兜底保护:业务代码忘了提交或回滚时,池子在回收连接那一刻替你收尾,防止脏事务串到下一个使用者。保持默认开启即可,不要为了"省那么一点性能"关掉它们。
第三区:连接池。 initialSize(初始连接数)、maxTotal(最大连接数,截图里是 200)、maxIdle/minIdle(最大/最小空闲连接)。这三个数字决定了系统在并发高峰时的数据库吞吐能力。经验值:中小型内部系统 maxTotal 50~100 足够;如果日志里频繁出现"获取连接超时",优先查慢 SQL,其次再考虑加大 maxTotal。
两个容易误用的配置顺手说清:connectionProperties 是给驱动的附加参数,多段配置用分号连接,某些老驱动必须在这里指定字符集编码,中文乱码问题先查它;disableConnectionPooling 打开后每次请求都新建裸连接、用完即关------只在排查"连接池本身是否出了问题"时临时打开,日常务必关闭,池子没了的代价是每次请求都付一次建连开销。
三、换库实操:五步从 Derby 迁到 MySQL
以切换到 MySQL 为例,完整流程是:
- 用 MySQL 客户端建好目标库;
- 在"数据库连接"里点添加 ,新建一个连接,驱动类填
com.mysql.cj.jdbc.Driver,URL 填jdbc:mysql://192.168.1.100:3306/mydb?useSSL=false&serverTimezone=Asia/Shanghai,填账号密码;
- 点工具栏的测试 按钮,提示连接成功再进行下一步------这一步不要跳过,它能当场暴露驱动缺失、网络不通、密码错误三类最常见问题;
- 用下一节讲的 SQL 工具或平台提供的数据迁移方式,把 system 库的数据导入新库(平台文档提供了标准迁移步骤);
- 修改新连接为
system名称生效,或按平台文档调整系统连接指向,重启 Tomcat 后验证登录与数据完整。
工具栏上还有两个实用按钮:复制 可以从现有连接复制一份配置再改,省去重复填写;属性 查看连接的扩展属性。另外注意左侧连接树旁边的连接表入口------它能列出该连接下的所有数据表,配合同一工具栏里的功能快速了解库结构。
四、DBE:浏览器里跑 SQL
第二个工具是"数据库执行"(admin/dbe),一个完全跑在浏览器里的 SQL 工作台:

左侧是数据库列表树(截图里的 system 就是那个内嵌库),展开可以看到库里的表;顶部工具栏提供新建 SQL、运行 SQL、保存脚本、导出结果等操作;中间大片区域就是 SQL 编辑区。
它的典型使用场景:
- 现场排查:客户报"数据不对",运维人员直接在浏览器里查表,不用远程桌面、不用装客户端;
- 数据修补:写一条 UPDATE 修正脏数据,比写临时页面或改代码快得多;
- 结构确认:开发时忘了字段名,展开树看一眼就回来继续写代码。
安全红线要划清楚 :DBE 是以连接配置里的数据库账号执行 SQL 的,权限很大。生产环境的建议是------连接配置里用权限受限的账号;DBE 页面本身也受模块权限控制(上一篇讲的权限三件套),只授予真正的运维角色;所有 UPDATE/DELETE 前先在编辑器里跑一遍对应的 SELECT 确认影响范围。
五、常见连接报错对照表
换库过程中的报错,九成落在下面这张表里:
|----------------------|--------------------------------|---------------------------------------|
| 现象 | 大概率原因 | 处理 |
| 测试连接提示"找不到驱动类" | 对应数据库的 JDBC jar 不在 WEB-INF/lib | 放入驱动 jar 后重启 Tomcat 再测 |
| URL 能拼通但测试超时 | 网络不通或防火墙拦了数据库端口 | 在服务器上 telnet 数据库IP 端口 验证连通性 |
| MySQL 连接报时区错误 | URL 缺 serverTimezone 参数 | URL 追加 serverTimezone=Asia/Shanghai |
| MySQL 连接报 SSL 警告/错误 | 8.x 驱动默认要求 SSL | URL 追加 useSSL=false(内网)或配置证书 |
| 登录报"用户名或密码错误"但账号密码没错 | 连接指向了旧库 | 核对当前 system 连接指向的库 |
| 运行一段时间后频繁获取连接超时 | 连接池耗尽或连接泄漏 | 查慢 SQL;适当加大 maxTotal |
这张表值得贴在运维工位上------数据库连接问题大多不复杂,复杂的是在没有思路时乱试。先定位到"驱动、网络、参数、指向"四类中的一类,再动手。
六、两个工具的配合姿势
实际运维里这两个页面经常配合使用:
- DBC 里新建/修改连接 → 测试通过;
- DBE 左树刷新 → 展开新连接 → 确认表结构符合预期;
- 出现性能问题时,DBE 里
EXPLAIN慢查询,DBA 给出索引方案;
- 需要调整连接池参数(比如高峰期连接不够)→ 回 DBC 改
maxTotal→ 保存重启生效。
一个常见误区是绕过 DBC 直接改配置文件 。平台把连接定义存在自己的元数据里,界面上改完立即生效并有校验;手改文件不仅容易写错格式,还会在下次界面保存时被覆盖。配置一律走界面,界面就是权威。
最后一个习惯性建议:每次改动连接配置前,先在 DBE 里把当前关键表的数据量记下来 (一条 select count(*) 的事)。配置改动本身不会动数据,但换库、切连接这类操作一旦指向出错,第一时间需要的就是这组"改动前基线"来判断影响范围。