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-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
- 重启容器
api-test
project-management
ms-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将整个数据库驱动器在底层抽象成 ...
随机推荐
- ESP32-S3接入大模型API,对话AI
ESP32-S3接入大模型API,对话AI 1.先使用python验证可行性 import requests url = "https://api.siliconflow.cn/v1/cha ...
- 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明 @ 目录 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明 1. Exchanges 交换机的 ...
- 在Linux终端管理你的密码!
大家好,我是良许. 现在是互联网时代,我们每天都要跟各种 APP .网站打交道,而这些东西基本上都需要注册才可以使用. 但是账号一多,我们自己都经常记不清对应的密码了.有些小伙伴就一把梭,所有的账号密 ...
- Spring的基础结构和核心接口
目录 1.BeanDefinition 2.BeanDefinitionReader 3.BeanDefinitionRegistry 4.BeanFactory 5.ApplicationConte ...
- RSA 加密及一些攻击方式
本文章转载自个人博客seandictionary.top同步更新可能不及时 原理 随机生成两个素数,p , q 令n = p*q 由欧拉公式计算出φ(n) = (p-1)(q-1) 规定e,使得e满足 ...
- 🎀idea-java序列化serialversionUID自动生成
简介 java.io.Serializable 是 Java 中的一个标记接口(marker interface),它没有任何方法或字段.当一个类实现了 Serializable 接口,那么这个类的对 ...
- JAVA 线程实现/创建方式
每天记录一个知识点: 概要: java创建线程的方式: 继承Thread类 实现Runnable接口 通过Callable和Future创建线程 基于线程池的方式 java创建线程池的四种方式: ne ...
- 康谋分享 | 仿真驱动、数据自造:Anyverse巧用合成数据重构智能座舱
随着汽车向智能化.场景化加速演进,智能座舱已成为人车交互的核心承载.从驾驶员注意力监测到儿童遗留检测,从乘员识别到安全带状态判断,座舱内的每一次行为都蕴含着巨大的安全与体验价值. 然而,这些感知系统要 ...
- 基于Vosk与Transformers的会议摘要生成系统实战教程
一.项目背景与价值 在现代办公场景中,会议记录与摘要生成是提升工作效率的重要环节.传统人工记录方式存在效率低.易遗漏等问题,而基于AI的解决方案可以实时转录会议内容并生成结构化摘要.本教程将指导开发者 ...
- React AntD的Dropdown组件报错:React.Children.only expected to receive a single React element child.可能的n原因
React.Children.only expected to receive a single React element child. Error: React.Children.only exp ...