MeterSphere V2.x 添加数据库驱动
MeterSphere V2.x 添加数据库驱动
背景
在使用 MeterSphere 进行接口测试时,会遇到一些接口场景,需要先查询数据库获取特定数据,再将查询结果作为请求参数传递给后续接口。然而,MeterSphere 默认仅支持 MySQL、Oracle、SQL Server 和 PostgreSQL 等常见数据库的查询操作。如果需要查询其他类型的数据库(例如 ClickHouse),则需通过编写脚本代码的方式来实现数据库连接与数据查询。以下将以 ClickHouse 数据库为例,详细介绍如何通过代码实现与其他类型数据库的连接与交互。
演示环境
| 对象 | 版本 |
|---|---|
| MeterSphere | v2.10.24-lts |
| clickhouse驱动 | clickhouse-jdbc-0.4.6.jar |
操作流程
下载驱动包我就不赘述了,直接将 clickhouse 驱动包上传到 metersphere的服务器中(建议上传至
./metersphere/data)

将 clickhouse 驱动包分别复制到
api-testproject-managementms-node-controller容器中
sudo docker cp clickhouse-jdbc-0.4.6.jar api-test:/app/lib
sudo docker cp clickhouse-jdbc-0.4.6.jar project-management:/app/lib
sudo docker cp clickhouse-jdbc-0.4.6.jar ms-node-controller:/app/lib
- 重启容器
api-testproject-managementms-node-controller
docker restart api-test project-management ms-node-controller
- 使用自定义脚本,编写代码,这里使用的是 groovy
import groovy.sql.Sql
import java.sql.DriverManager
def connectToClickHouse() {
// ClickHouse 连接参数
def url = "jdbc:clickhouse://localhost:8123/default"
def user = "root"
def password = "clickhouse"
try {
// 注册 JDBC 驱动(通常在现代 JDBC 驱动中不需要显式注册)
Class.forName("com.clickhouse.jdbc.ClickHouseDriver")
// 创建数据库连接
def connection = DriverManager.getConnection(url, user, password)
log.info("成功连接到ClickHouse数据库")
// 使用 Groovy 的 Sql 类进行数据库操作
def sql = new Sql(connection)
// 执行查询
sql.eachRow("SELECT * FROM system.tables LIMIT 5") { row ->
log.info(row.toRowResult().collect { it }.join("\t"))
}
// 执行插入操作
sql.execute("CREATE TABLE IF NOT EXISTS test_table (id Int32, name String) ENGINE = Memory")
def rowsInserted = sql.executeInsert("""
INSERT INTO test_table VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie')
""")
log.info("插入了 ${rowsInserted.size()} 行数据")
// 查询插入的数据
sql.eachRow("SELECT * FROM test_table") { row ->
log.info("ID: ${row.id}, Name: ${row.name}")
}
// 关闭连接
sql.close()
} catch (Exception e) {
log.info("操作出错: ${e.message}")
e.printStackTrace()
}
}
connectToClickHouse()

- 执行脚本,结果如下

MeterSphere V2.x 添加数据库驱动的更多相关文章
- Qt添加驱动——Qt数据库之添加MySQL驱动插件
Qt数据库之添加MySQL驱动插件(1) 现在可用的数据库驱动只有3种,在Qt中,我们需要自己编译其他数据库驱动的代码,让它们以插件的形式来使用.下面我们就以现在比较流行的MySQL数据库为例,说明一 ...
- Eclipse连接到My sql数据库的操作总结/配置数据库驱动
Eclipse连接到MYSQL数据库的操作 (自己亲测,开始学习Eclipse(我的Eclipse版本是4.5.2,Jdbc驱动器的jar包版本是5.1.7,亲测可以使用)连接到数据库的时候,发现网上 ...
- PHP 数据库驱动、连接数据不同方式学习笔记
相关学习资料 http://www.php.net/manual/zh/refs.database.php http://www.php.net/manual/zh/internals2.pdo.ph ...
- MyGeneration 默认设置中没有数据库驱动
这 个问题的出现基本上是因为MyGeneration 1.3需要的是 .Net framework 4.0,如果系统安装了 .Net 2.0的版本,安装程序执行的 regasm.exe为2.0版本下的 ...
- Spring框架针对dao层的jdbcTemplate操作crud之add添加数据库操作
使用jdbcTemplate 原理是把加载驱动Class.forName("com.mysql.jdbc.Driver"); 和连接数据库Connection conn=Drive ...
- 离线安装pycharm数据库驱动
这个数据库驱动,不是python的链接包 而是打开pycharm pro版后的数据库浏览器驱动. 也就是专业版比社区版方便的一个地方,可以直接边写代码,边看数据库结构,还可以拖动一些变量. 在线安装挺 ...
- PHP数据库驱动扩展概述与不同方式连接数据库总结
Author:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,CSDN官方首发原创文章 个人博客: cnblogs.com ...
- jdbc如何注册数据库驱动Driver的?
1. 先看看原生jdbc执行sql的步骤 // 在程序启动的时候需要注册一次mysql驱动,必须引入 mysql-connnector-java 的包 Class.forName("com. ...
- 在IDEA中已经配置postgis数据库驱动并且能在Java类中连接数据库,但在servlet中无法连接数据库且导致Tomcat自动断开连接的解决方案
最近在IDEA中用JDBC连接PostgreSQL数据库时遇到了这样一个奇怪的事情: 从PostgreSQL JDBC Driver官网下载好JDBC驱动之后,在IDEA的Project Struct ...
- JDBC:加载数据库驱动、连接数据库(详细讲解)
加载数据库驱动: 1)由于Java是一个纯面向对象语言,任何事物在其中都必须抽象成类或者类对象,数据库也不例外,JDBC同样也把数据库抽象成面向对象的结构: 2)JDBC将整个数据库驱动器在底层抽象成 ...
随机推荐
- HTTPS方案浅谈
付费方案 赛门铁克 沃通 其他...懒得看了,重点不是这些 免费方案 WoSign(沃通)的DV免费SSL证书: 免费SSL证书支持最多5个域名, 一次性可管2年, 到期后可免费续期,相当于永久免费. ...
- sql server2008r2其中一张表不能任何操作
用户的数据库一张高频表,使用select count(*) from t1 竟然一直在转圈,显示开始,而没有end. 找尽原因不得果.把数据库备份后在恢复,可以使用几小时,之后又是老毛病抽风. 用户生 ...
- datasnap的监督功能【2】-管理Session
1.服务端的Session是有TDSSession定义的.TDSSession提供了许多有用的方法和特性,再开发室取得服务or重要信息. 如Session状态.安排Session独享定时or自动执行工 ...
- 利用 APEX 打造 Oracle 23ai 智能开发平台
Oracle 23ai 有很多新功能,但用户痛点是不会用. 因此计划开发一个适合小白的图形化界面Oracle 23ai智能开发平台,过程中也能学习APEX的玩法. 本篇先拿Oracle数据库向量操作相 ...
- FastAPI依赖注入性能优化策略
title: FastAPI依赖注入性能优化策略 date: 2025/04/12 00:53:48 updated: 2025/04/12 00:53:48 author: cmdragon exc ...
- vue路由params传参时出现undefined
1.问题: 使用params方式传参时(参数不显示的方式) 获取参数时,参数undefined 2.解决: push时请使用name,不要使用path(路由的params对象使用,必须通过路由名nam ...
- H5 ios端微信浏览器下-底部工具固定方法
在外层配置css position: fixed; width: 100%; top: 0px; bottom: 0px; overflow: auto; 结束
- 100行代码实现Chat2XX(DB/ Web/ KnowledgeBase)
这两年基于大模型的应用可谓五花八门,Chat2DB,Chat2Web,Chat2KnowledgeBase,Chat2XXX等等.本质上都是以自然语言作为系统输入,通过各种手段获取额外的上下文信息,然 ...
- <HarmonyOS第一课04>应用程序框架基础
视频链接: https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717497122909477?ha_sou ...
- dbeaver导入sql脚本报错的排查—— ERROR 1366 (HY000) at line
描述 在使用dbeaver进行sql脚本导入的时候报了以下的错误. C:\Users\xxxx\AppData\Roaming\DBeaverData\drivers\clients\mysql_8\ ...