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将整个数据库驱动器在底层抽象成 ...
随机推荐
- 使用SPA单页面跟MPA多页面的优缺点?
SPA vs MPA 深度解析 1. 概述 什么是 SPA? SPA(Single Page Application,单页面应用)是一种仅加载一个 HTML 页面,并通过 JavaScript 动态更 ...
- 【Python】解决“Tk_GetPixmap: Error from CreateDIBSection”闪退问题
解决Python使用Tkinter的Notebook切换标签时出现的"Tk_GetPixmap: Error from CreateDIBSection 操作成功完成"闪退问题 零 ...
- php代码审计实战-开源项目Materialized CMS漏洞检测
一.下载Materialized CMS 链接地址:https://sourceforge.net/projects/materialized-cms/files/latest/download 二. ...
- Win10微软拼音输入法设置-注册表
修改候选项窗口 HKEY_CURRENT_USER\Software\Microsoft\InputMethod\CandidateWindow\CHS\1 EnableFixedCandidateC ...
- C++宏定义中可变参数列表__VA_ARGS__ 及 QT 提供的宏 QT_OVERLOADED_MACRO
1. 基本用法 VA_ARGS 是 C/C++ 中的预定义宏,用于在宏定义中表示可变参数列表(Variadic Arguments),需与省略号 ... 配合使用.其核心作用是将宏调用中的可变参数原样 ...
- 树状数组(Fenwick Tree)原理和优化全面解析
你正在开发一个交易系统,需要实时完成两种操作: 更新某个时间点的价格(单点修改) 快速计算某段时间段内的交易总量(区间查询) 当数据量较小时,我们可能会这样实现: vector<int> ...
- python,循环中通过判断条件中止循环的方法(braek 语句)
直接对下方代码进行解析 for a in range(5): print(a) if a == 2: break 依次读取range内的数字,并答应出来.当读取出来的数字是2时,结束循环,执行后入下图 ...
- cglib 代理类自己equals自己 返回false问题
问题: 通过debug发现result.removeAll的时候 删不了 public boolean equals(Object obj) { return obj instanceof OspSp ...
- PACS千万家,好看耐用第一家---基于JAVA开发的跨平台PACS系统
随着2011年成功上线全院级PACS,期间软件版本不断的更新和优化,也得到了不少HIS厂商及同行友商的支持,目前已有医院客户达到了300多家遍布全国各个省份,随着时间的推移,PACS老客户的数据量在不 ...
- SpringBoot——yaml配置文件
yaml简介 YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言).在开发的这种语言时,YAML 的意思其实是:"Ye ...