JDBC采样器各选项的含义如下:

1.Variable Name

其中的Variable Name和上面JDBC Connection Configuration中的Variable Name相同,这里表示JDBC Connection Configuration 建立一个名为pubpool的连接池,之后其他JDBC Request 都共用这个连接池。

2.SQL Query

(1)Query Type

xxx Statement需要填写的sql是一句完整可执行的sql,而Prepared xxx Statement允许用户在sql中变量,然后再Parameter values和Parameter types中填写参数和类型,最终执行时替代sql中的变量,形成一句完整的sql语句。

Select statement:

##待验证,网上找的例子:

如果SQL语句中需要使用参数变量,那么Query Type 需要设置为Select Statement ,需要先添加Random Variable,然后在Parameter Values中输入${变量名称},${变量名称};

在Paramter types中输入变量的数据类型。 如下图示:

中间用逗号分隔。只能执行第一个SQL语句。

Update statement: 对于Insert、Update、Delete语句,需要设置Query Type为:Update Statament.数据修改语句中可以使用参数,而且可以顺序执行多个修改语句。

Egg:

Callable statement:

##待验证:

多个查询语句(不使用参数的情况下)可以放在一起顺序执行,需要设置Query Type为Callable Statement,然后顺序输入select语句,不用加go或者分号。如果Query Type设置为:Select Statement的话,只执行第一个SQL语句。

Prepared select statement:

Prepared update statement:

Commit:

把JDBC connection configuration中的自动提交为false,执行更改,增加或删除操作后,查询数据并无更改,再添加一个JDBC Request,设置其Query Type为commit,再次查询,之前的操作生效。

Rollback:

把JDBC connection configuration中的自动提交为false,执行更改,增加或删除操作后,查询数据并无更改(相当于编辑没保存), 再添加一个JDBC Request,设置其Query Type为rollback(相当于编辑后撤销),再次查询,仍然没有更改。

如果把JDBC connection configuration中的自动提交为true,执行更改,增加或删除操作后,查询数据更改,但一旦事物被提交就无法rollback。

Autocommit(false)和Autocommit(true):

把JDBC connection configuration中的自动提交为true或false,是设置系统参数的默认值。添加一个JDBC Request,设置其Query Type Autocommit为true或false后(相当于修改系统参数),再进行对数据库的增加、删除、修改操作。

Edit:必须是对上述之一的结果的引用, 为使用正则表达式的操作。

(2)Parameter values:表示我们要添加的数据,需要不同数据添加可以使用参数化

Parameter types为上面需要输入数据的类型,与上面的一一对应

Parameter values和Parameter types:成对出现,且sql语句中有多少个?,这里就必须有多少对参数键值对,假设sql语句为select * from ZMYW_USER where ID=?,那么可以设置Parameter values为${id},Parameter types为VARCHAR

(3)Variable names:变量名称,为数据库的字段名称,有多个字段返回时,可以使用逗号隔开,用于存放select操作返回的查询结果

Result variable name:用于存放select操作返回的查询结果集。

3.扩展:

(1) 当选择了"Prepared select statement"、”Prepared update statement "Callable statement"的类型时,每个连接的语句缓存使用 JDBC 请求。在默认情况下将存储每个连接高达 100 Prepared Statements,这可能会影响您的数据库 (打开的游标)。这可以通过定义"jdbc sampler.nullmarker"属性更改。

(2)在实际的项目中,至少有2种类型的JDBC请求需要关注:select语句和存储过程。前者反应了select语句是否高效,以及表的索引等是否需要优化;后者则是反应存储过程的算法是否高效。它们如果效率低下,必然会带来响应上的不尽如人意。对于这两种请求,JDBC请求的配置略有区别。

(1)Query Type为Select Statement时,对应执行代码为:stmt = conn.createStatement();

ResultSet rs = null;

rs = stmt.executeQuery(sql);

return getStringFromResultSet(rs).getBytes(ENCODING);

(2)Query Type为Callable Statement时,对应执行代码为:CallableStatement cstmt = getCallableStatement(conn);

int out[]=setArguments(cstmt);

boolean hasResultSet = cstmt.execute();

String sb = resultSetsToString(cstmt,hasResultSet, out);

return sb.getBytes(ENCODING);

(3)Query Type为Update Statement时,对应执行代码为:stmt = conn.createStatement();

stmt.executeUpdate(sql);

int updateCount = stmt.getUpdateCount();

String results = updateCount + " updates";

return results.getBytes(ENCODING);

(4)Query Type为Prepared Select Statement时,对应执行代码为:PreparedStatement pstmt = getPreparedStatement(conn);

setArguments(pstmt);

ResultSet rs = null;

rs = pstmt.executeQuery();

return getStringFromResultSet(rs).getBytes(ENCODING);

(5)Query Type为Prepared Update Statement时,对应执行代码为:

PreparedStatement pstmt = getPreparedStatement(conn);

setArguments(pstmt);

pstmt.executeUpdate();

String sb = resultSetsToString(pstmt,false,null);

return sb.getBytes(ENCODING);

(6)Query Type为Rollback时,对应执行代码为:

conn.rollback();

return ROLLBACK.getBytes(ENCODING);

(7)Query Type为Commit时,对应执行代码为:

conn.commit();

return COMMIT.getBytes(ENCODING);

(8)Query Type为AutoCommit(false)时,对应执行代码为:conn.setAutoCommit(false);

return AUTOCOMMIT_FALSE.getBytes(ENCODING);

(9)Query Type为AutoCommit(true)时,对应执行代码为:

conn.setAutoCommit(true);

return AUTOCOMMIT_TRUE.getBytes(ENCODING);

(10)其它情况直接抛异常:throw new UnsupportedOperationException("Unexpected query type: "+_queryType);

参考自:http://f.dataguru.cn/forum.php?mod=viewthread&tid=555033&highlight=JDBC

jmeter jdbc各字段的含义的更多相关文章

  1. jmeter JDBC请求连接测试mysql数据库

    所有jmeter基本组件功能本文不做介绍.jmeter要链接mysql数据库,首先得下载mysql jdbc驱动包(注:驱动包的版本一定要与你数据库的版本匹配,驱动版本低于mysql版本有可能会导致连 ...

  2. k8s学习笔记之五:Pod资源清单spec字段常用字段及含义

    第一章.前言 在上一篇博客中,我们大致简述了一般情况下资源清单的格式,以及如何获得清单配置的命令帮助,下面我们再讲解下清单中spec字段中比较常见的字段及其含义 第二章.常用字段讲解 spec.con ...

  3. [svc]证书各个字段的含义

    证书生成工具 1,openssl 2,jdk自带的keystone 3,cfssl 证书中各个字段的含义 - 查看证书的内容 openssl x509 -in /etc/pki/CA/cacert.p ...

  4. jmeter—JDBC request动态参数设置

    jmeter—JDBC request动态参数设置 重要参数说明: Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable ...

  5. jmeter --JDBC请求

    转jmeter --JDBC请求 做JDBC请求,首先要了解这个JDBC对象是什么,然后寻找响应的数据库连接URL和数据库驱动. 数据库URL:jdbc:sqlserver://200.99.197. ...

  6. Jmeter JDBC Request的sql语句不支持;号

    Jmeter JDBC Request的sql语句不支持:号,如果要批量插入数据,则需要使用以下方式 INSERT INTO bank_info( `id`, `bank_code`, `bank_n ...

  7. Pod中spec的字段常用字段及含义

    一.Pod中spec的字段常用字段及含义 1.pod.spec.containers ²  spec.containers.name <string>  #pod的名称,必须字段,名称唯一 ...

  8. Android的DDMS中的Threads的各个字段的含义

    在使用DDMS调试代码时,Threads窗口中各个字段的含义从网上搜了下,如下所示: 该标签页显示了如下信息: ID – a VM-assigned unique thread ID. In Dalv ...

  9. mysql,user表中各字段的含义

    1.查询user表 select * from mysql.user 2.修改用户密码 ALTER user ' 3.user表中各字段的含义 Select_priv:用户可以通过SELECT命令选择 ...

随机推荐

  1. 传智播客C++

    轻松入门实战应用传智播客C++学院就业班第一阶段C提高课程 传智播客C提高讲义 传智扫地僧 1程序内存模型 1.1就业班引言 1.1.1问题引出 企业需要能干活的人  C学到什么程度可以找工作  ...

  2. Windows下Python多版本共存

    Windows下Python多版本共存 Python数据科学安装Numby,pandas,scipy,matpotlib等(IPython安装pandas) 0.0 因为公司项目,需要Python两个 ...

  3. ubuntu server 16.04安装GPU服务器

    1 Ubuntu16.04 系统安装过程中,需要勾选openssh-server 方便远程连接 2 必须安装gcc 与g++ 3 安装显卡驱动 NVIDIA-Linux-x86_64-367.57.r ...

  4. GoAccess自动分割Nginx日志

    GoAccess 是一款开源的网站日志实时分析工具.GoAccess 的工作方式很容易理解,就是读取和解析 Apache/Nginx/Lighttpd 的访问日志文件 access log,然后以更友 ...

  5. Python+selenium之测试报告(2)

    # -*- coding: utf-8 -*- import HTMLTestReport import HTMLTestRunner import os import sys import time ...

  6. 协议学习之 vamei博客系列 总结

    1. 分层: 物理层(physical layer) 所谓的物理层,是指光纤.电缆或者电磁波等真实存在的物理媒介.这些媒介可以传送物理信号,比如亮度.电压或者振幅.对于数字应用来说,我们只需要两种物理 ...

  7. 【转】iOS开发里的Bundle是个啥玩意?!

    初学iOS开发的同学,不管是自己写的,还是粘贴的代码,或多或少都写过下面的代码 [[NSBundle mainBundle] pathForResource:@"someFileName&q ...

  8. 用 label 控制 Pod 的位置

    默认配置下,Scheduler 会将 Pod 调度到所有可用的 Node.不过有些情况我们希望将 Pod 部署到指定的 Node,比如将有大量磁盘 I/O 的 Pod 部署到配置了 SSD 的 Nod ...

  9. samba修改smb.conf后,不需要重启服务,就可生效

    在修改完smb.conf后,不需要重启服务.在Centos7.3与Ubuntu18.04上验证都没有问题. 猜测可能的原因:samba是在客户端进行连接时,smb服务程序读取smb.conf配置文件信 ...

  10. python之道11

    day11作业 请写出下列代码的执行结果: 例一: def func1(): print(**'in func1'**) def func2(): print(**'in func2'**) ret ...