MeterSphere V2.x 添加数据库驱动

背景

在使用 MeterSphere 进行接口测试时,会遇到一些接口场景,需要先查询数据库获取特定数据,再将查询结果作为请求参数传递给后续接口。然而,MeterSphere 默认仅支持 MySQL、Oracle、SQL Server 和 PostgreSQL 等常见数据库的查询操作。如果需要查询其他类型的数据库(例如 ClickHouse),则需通过编写脚本代码的方式来实现数据库连接与数据查询。以下将以 ClickHouse 数据库为例,详细介绍如何通过代码实现与其他类型数据库的连接与交互。

演示环境

对象 版本
MeterSphere v2.10.24-lts
clickhouse驱动 clickhouse-jdbc-0.4.6.jar

操作流程

  1. 下载驱动包我就不赘述了,直接将 clickhouse 驱动包上传到 metersphere的服务器中(建议上传至 ./metersphere/data

  2. 将 clickhouse 驱动包分别复制到 api-test project-management ms-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
  1. 重启容器 api-test project-management ms-node-controller
docker restart api-test project-management ms-node-controller
  1. 使用自定义脚本,编写代码,这里使用的是 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()

  1. 执行脚本,结果如下

MeterSphere V2.x 添加数据库驱动的更多相关文章

  1. Qt添加驱动——Qt数据库之添加MySQL驱动插件

    Qt数据库之添加MySQL驱动插件(1) 现在可用的数据库驱动只有3种,在Qt中,我们需要自己编译其他数据库驱动的代码,让它们以插件的形式来使用.下面我们就以现在比较流行的MySQL数据库为例,说明一 ...

  2. Eclipse连接到My sql数据库的操作总结/配置数据库驱动

    Eclipse连接到MYSQL数据库的操作 (自己亲测,开始学习Eclipse(我的Eclipse版本是4.5.2,Jdbc驱动器的jar包版本是5.1.7,亲测可以使用)连接到数据库的时候,发现网上 ...

  3. PHP 数据库驱动、连接数据不同方式学习笔记

    相关学习资料 http://www.php.net/manual/zh/refs.database.php http://www.php.net/manual/zh/internals2.pdo.ph ...

  4. MyGeneration 默认设置中没有数据库驱动

    这 个问题的出现基本上是因为MyGeneration 1.3需要的是 .Net framework 4.0,如果系统安装了 .Net 2.0的版本,安装程序执行的 regasm.exe为2.0版本下的 ...

  5. Spring框架针对dao层的jdbcTemplate操作crud之add添加数据库操作

    使用jdbcTemplate 原理是把加载驱动Class.forName("com.mysql.jdbc.Driver"); 和连接数据库Connection conn=Drive ...

  6. 离线安装pycharm数据库驱动

    这个数据库驱动,不是python的链接包 而是打开pycharm pro版后的数据库浏览器驱动. 也就是专业版比社区版方便的一个地方,可以直接边写代码,边看数据库结构,还可以拖动一些变量. 在线安装挺 ...

  7. PHP数据库驱动扩展概述与不同方式连接数据库总结

    Author:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,CSDN官方首发原创文章 个人博客: cnblogs.com ...

  8. jdbc如何注册数据库驱动Driver的?

    1. 先看看原生jdbc执行sql的步骤 // 在程序启动的时候需要注册一次mysql驱动,必须引入 mysql-connnector-java 的包 Class.forName("com. ...

  9. 在IDEA中已经配置postgis数据库驱动并且能在Java类中连接数据库,但在servlet中无法连接数据库且导致Tomcat自动断开连接的解决方案

    最近在IDEA中用JDBC连接PostgreSQL数据库时遇到了这样一个奇怪的事情: 从PostgreSQL JDBC Driver官网下载好JDBC驱动之后,在IDEA的Project Struct ...

  10. JDBC:加载数据库驱动、连接数据库(详细讲解)

    加载数据库驱动: 1)由于Java是一个纯面向对象语言,任何事物在其中都必须抽象成类或者类对象,数据库也不例外,JDBC同样也把数据库抽象成面向对象的结构: 2)JDBC将整个数据库驱动器在底层抽象成 ...

随机推荐

  1. HTTPS方案浅谈

    付费方案 赛门铁克 沃通 其他...懒得看了,重点不是这些 免费方案 WoSign(沃通)的DV免费SSL证书: 免费SSL证书支持最多5个域名, 一次性可管2年, 到期后可免费续期,相当于永久免费. ...

  2. sql server2008r2其中一张表不能任何操作

    用户的数据库一张高频表,使用select count(*) from t1 竟然一直在转圈,显示开始,而没有end. 找尽原因不得果.把数据库备份后在恢复,可以使用几小时,之后又是老毛病抽风. 用户生 ...

  3. datasnap的监督功能【2】-管理Session

    1.服务端的Session是有TDSSession定义的.TDSSession提供了许多有用的方法和特性,再开发室取得服务or重要信息. 如Session状态.安排Session独享定时or自动执行工 ...

  4. 利用 APEX 打造 Oracle 23ai 智能开发平台

    Oracle 23ai 有很多新功能,但用户痛点是不会用. 因此计划开发一个适合小白的图形化界面Oracle 23ai智能开发平台,过程中也能学习APEX的玩法. 本篇先拿Oracle数据库向量操作相 ...

  5. FastAPI依赖注入性能优化策略

    title: FastAPI依赖注入性能优化策略 date: 2025/04/12 00:53:48 updated: 2025/04/12 00:53:48 author: cmdragon exc ...

  6. vue路由params传参时出现undefined

    1.问题: 使用params方式传参时(参数不显示的方式) 获取参数时,参数undefined 2.解决: push时请使用name,不要使用path(路由的params对象使用,必须通过路由名nam ...

  7. H5 ios端微信浏览器下-底部工具固定方法

    在外层配置css position: fixed; width: 100%; top: 0px; bottom: 0px; overflow: auto; 结束

  8. 100行代码实现Chat2XX(DB/ Web/ KnowledgeBase)

    这两年基于大模型的应用可谓五花八门,Chat2DB,Chat2Web,Chat2KnowledgeBase,Chat2XXX等等.本质上都是以自然语言作为系统输入,通过各种手段获取额外的上下文信息,然 ...

  9. <HarmonyOS第一课04>应用程序框架基础

    视频链接: https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717497122909477?ha_sou ...

  10. dbeaver导入sql脚本报错的排查—— ERROR 1366 (HY000) at line

    描述 在使用dbeaver进行sql脚本导入的时候报了以下的错误. C:\Users\xxxx\AppData\Roaming\DBeaverData\drivers\clients\mysql_8\ ...