精华内容
下载资源
问答
  • 1.没有大神我说一说,到底什么参数参数和变量区别什么??
  • 参数和变量区别

    千次阅读 2018-09-10 20:06:17
    1、在调用过程的时候,时候需要输入参数,此时参数值,在过程中可以直接用; 2、变量是存在于过程里面,赋值用的,只有赋值完后,才能调用值; 3、参数是用来传递的,变量是在通过定义得到的; 4、调用过程...

    1、在调用过程的时候,有时候需要输入参数,此时参数会有值,在过程中可以直接用;
    2、变量是存在于过程里面,赋值用的,只有赋值完后,才能调用值;
    3、参数是用来传递的,变量是在通过定义得到的;
    4、调用过程可以传递参数,改变过程中的某些值;
    5、变量是在过程中,一旦定义,不能改变。

    展开全文
  • 在一次导游平台的项目中,初始调试脚本阶段,我将需要一些参数都写死放在用户定义变量中。 就是下图这个东西,重点注意timestamp这个参数 脚本调试通过后,做并发调试,发现每次请求的参数值,timestamp都...

    在一次导游平台的项目中,初始调试脚本阶段,我将需要一些参数都写死放在用户定义变量中。

    就是下图这个东西,重点注意timestamp这个参数

    112823_oL5r_3262302.png

    脚本调试通过后,做并发调试,发现每次请求的参数值,timestamp都是一样的(开发发现的),也就是脚本初始启动时的时间戳,以后就不会再变。

    这样就运行后期,导致jmeter里的时间戳与服务器系统时间产生差距,系统校验时间戳时会通不过。

    于是查看jmeter帮助,发现了这么一句话,顿时明白了。

    用户定义变量的所有数据只会初始化一次,不管你多少线程,循环多少次,它的值是不变的。

    113742_gvxY_3262302.png

    紧接着百度其他控件,找到了! 叫用户参数(User Parameter),

    141609_9Knn_3262302.png

    在Sample上右键添加路径:

    前置处理器 (PreProcessors) --  用户参数(User Parameters)

    114040_unhb_3262302.png

    添加后如图:

    114306_Onq8_3262302.png

    重新调试,并发时,timestamp每次都是变化的了

    同理,之前困扰我很久的,${__CSVRead(,)}函数为啥总是读取第一行数据,也迎刃而解了。

    而不是只能用Jmeter自带的CSV Data Read组件来做读取文件参数化。

     

     

     

     

     

    转载于:https://my.oschina.net/u/3262302/blog/1647093

    展开全文
  • 之前在项目的存储过程中发现通过 `DECLARE` 关键字定义...`,这两种类型的变量究竟有什么区别却弄不清楚,赶紧上网查询资料,发现还有`@@sql_mode`这样的变量,这一个圈俩圈的到底是什么啊?会不会出现三个圈的情况?

    前言

    之前在项目的存储过程中发现有通过 DECLARE 关键字定义的变量如DECLARE cnt INT DEFAULT 0;,还有形如 @count 这样的变量,存储过程中拿过来直接就进行设置,像这样set @count=1;,这两种类型的变量究竟有什么区别却弄不清楚,赶紧上网查询资料,发现还有@@sql_mode这样的变量,这一个圈俩圈的到底是什么啊?会不会出现三个圈的情况?

    变量分类与关系

    经过一段时间学习和测试,再配合官方的文档,现在大致弄清楚了这些变量的区别,一般可以将MySQL中的变量分为全局变量、会话变量、用户变量和局部变量,这是很常见的分类方法,这些变量的作用是什么呢?可以从前往后依次看一下。

    首先我们知道MySQL服务器维护了许多系统变量来控制其运行的行为,这些变量有些是默认编译到软件中的,有些是可以通过外部配置文件来配置覆盖的,如果想查询自编译的内置变量和从文件中可以读取覆盖的变量可以通过以下命令来查询:

    mysqld --verbose --help
    

    如果想只看自编译的内置变量可以使用命令:

    mysqld --no-defaults --verbose --help
    

    接下来简单了解一下这几类变量的应用范围,首先MySQL服务器启动时会使用其软件内置的变量(俗称写死在代码中的)和配置文件中的变量(如果允许,是可以覆盖源代码中的默认值的)来初始化整个MySQL服务器的运行环境,这些变量通常就是我们所说的全局变量,这些在内存中的全局变量有些是可以修改的。

    当有客户端连接到MySQL服务器的时候,MySQL服务器会将这些全局变量的大部分复制一份作为这个连接客户端的会话变量,这些会话变量与客户端连接绑定,连接的客户端可以修改其中允许修改的变量,但是当连接断开时这些会话变量全部消失,重新连接时会从全局变量中重新复制一份。

    其实与连接相关的变量不只有会话变量一种,用户变量也是这样的,用户变量其实就是用户自定义变量,当客户端连接上MySQL服务器之后就可以自己定义一些变量,这些变量在整个连接过程中有效,当连接断开时,这些用户变量消失。

    局部变量实际上最好理解,通常由DECLARE 关键字来定义,经常出现在存储过程中,非常类似于C和C++函数中的局部变量,而存储过程的参数也和这种变量非常相似,基本上可以作为同一种变量来对待。

    变量的修改

    先说全局变量有很多是可以动态调整的,也就是说可以在MySQL服务器运行期间通过 SET 命令修改全局变量,而不需要重新启动 MySQL 服务,但是这种方法在修改大部分变量的时候都需要超级权限,比如root账户。

    相比之下会话对变量修改的要求要低的多,因为修改会话变量通常只会影响当前连接,但是有个别一些变量是例外的,修改它们也需要较高的权限,比如 binlog_formatsql_log_bin,因为设置这些变量的值将影响当前会话的二进制日志记录,也有可能对服务器复制和备份的完整性产生更广泛的影响。

    至于用户变量和局部变量,听名字就知道,这些变量的生杀大权完全掌握在自己手中,想改就改,完全不需要理会什么权限,它的定义和使用全都由用户自己掌握。

    测试环境

    以下给出MySQL的版本,同时使用root用户测试,这样可以避免一些权限问题。

    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 7
    Server version: 5.7.21-log MySQL Community Server (GPL)
    Copyright © 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective owners.
    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

    变量查询与设置

    全局变量

    这些变量来源于软件自编译、配置文件中、以及启动参数中指定的变量,其中大部分是可以由root用户通过 SET 命令直接在运行时来修改的,一旦 MySQL 服务器重新启动,所有修改都被还原。如果修改了配置文件,想恢复最初的设置,只需要将配置文件还原,重新启动 MySQL 服务器,一切都可以恢复原来的样子。

    查询

    查询所有的全局变量:

    show global variables;
    

    一般不会这么用,这样查简直太多了,大概有500多个,通常会加个like控制过滤条件:

    mysql> show global variables like 'sql%';
    +------------------------+----------------------------------------------------------------+
    | Variable_name          | Value                                                          |
    +------------------------+----------------------------------------------------------------+
    | sql_auto_is_null       | OFF                                                            |
    | sql_big_selects        | ON                                                             |
    | sql_buffer_result      | OFF                                                            |
    | sql_log_off            | OFF                                                            |
    | sql_mode               | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
    | sql_notes              | ON                                                             |
    | sql_quote_show_create  | ON                                                             |
    | sql_safe_updates       | OFF                                                            |
    | sql_select_limit       | 18446744073709551615                                           |
    | sql_slave_skip_counter | 0                                                              |
    | sql_warnings           | OFF                                                            |
    +------------------------+----------------------------------------------------------------+
    11 rows in set, 1 warning (0.00 sec)
    
    mysql>
    

    还有一种查询方法就是通过select语句:

    select @@global.sql_mode;
    

    当一个全局变量不存在会话变量副本时也可以这样

    select @@max_connections;
    

    设置

    设置全局变量也有两种方式:

    set global sql_mode='';
    

    或者

    set @@global.sql_mode='';
    

    会话变量

    这些变量基本来自于全局变量的复制,与客户端连接有关,无论怎样修改,当连接断开后,一切都会还原,下次连接时又是一次新的开始。

    查询

    类比全局变量,会话变量也有类似的查询方式,查询所有会话变量

    show session variables;
    

    添加查询匹配,只查一部分会话变量:

    show session variables like 'sql%';
    

    查询特定的会话变量,以下三种都可以:

    select @@session.sql_mode;
    select @@local.sql_mode;
    select @@sql_mode;
    

    设置

    会话变量的设置方法是最多的,以下的方式都可以:

    set session sql_mode = '';
    set local sql_mode = '';
    set @@session.sql_mode = '';
    set @@local.sql_mode = '';
    set @@sql_mode = '';
    set sql_mode = '';
    

    用户变量

    用户变量就是用户自己定义的变量,也是在连接断开时失效,定义和使用相比会话变量来说简单许多。

    查询

    直接一个select语句就可以了:

    select @count;
    

    设置

    设置也相对简单,可以直接使用set命令:

    set @count=1;
    set @sum:=0;
    

    也可以使用select into语句来设置值,比如:

    select count(id) into @count from items where price < 99;
    

    局部变量

    局部变量通常出现在存储过程中,用于中间计算结果,交换数据等等,当存储过程执行完,变量的生命周期也就结束了。

    查询

    也是使用select语句:

    declare count int(4);
    select count;
    

    设置

    与用户变量非常类似:

    declare count int(4);
    declare sum int(4);
    set count=1;
    set sum:=0;
    

    也可以使用select into语句来设置值,比如:

    declare count int(4);
    select count(id) into count from items where price < 99;
    

    其实还有一种存储过程参数,也就是C/C++中常说的形参,使用方法与局部变量基本一致,就当成局部变量来用就可以了

    几种变量的对比使用

    操作类型全局变量会话变量用户变量局部变量(参数)
    文档常用名global variablessession variablesuser-defined variableslocal variables
    出现的位置命令行、函数、存储过程命令行、函数、存储过程命令行、函数、存储过程函数、存储过程
    定义的方式只能查看修改,不能定义只能查看修改,不能定义直接使用,@var形式declare count int(4);
    有效生命周期服务器重启时恢复默认值断开连接时,变量消失断开连接时,变量消失出了函数或存储过程的作用域,变量无效
    查看所有变量show global variables;show session variables;--
    查看部分变量show global variables like 'sql%';show session variables like 'sql%';--
    查看指定变量select @@global.sql_mode
    select @@max_connections;
    select @@session.sql_mode;
    select @@local.sql_mode;
    select @@sql_mode;
    select @var;select count;
    设置指定变量set global sql_mode='';
    set @@global.sql_mode='';
    set session sql_mode = '';
    set local sql_mode = '';
    set @@session.sql_mode = '';
    set @@local.sql_mode = '';
    set @@sql_mode = '';
    set sql_mode = '';
    set @var=1;
    set @var:=101;
    select 100 into @var;
    set count=1;
    set count:=101;
    select 100 into count;

    相信看了这个对比的表格,之前的很多疑惑就应该清楚了,如果发现其中有什么疑惑的地方可以给我留言,或者发现有什么错误也可以一针见血的指出来,我会尽快改正的。

    总结

    1. MySQL 中的变量通常分为:全局变量、 会话变量、 用户变量、 局部变量
    2. 其实还有一个存储过程和函数的参数,这种类型和局部变量基本一致,当成局部变量来使用就行了
    3. 在表格中有一个容易疑惑的点就是无论是全局变量还是会话变量都有select@@变量名的形式。
    4. select@@变量名这种形式默认取的是会话变量,如果查询的会话变量不存在就会获取全局变量,比如@@max_connections
    5. 但是SET操作的时候,set @@变量名=xxx 总是操作的会话变量,如果会话变量不存在就会报错
    展开全文
  • 参数传递,成员变量和局部变量

    千次阅读 2019-05-15 15:13:13
    1.参数传递 基本数据类型作为方法的参数传递时,形参改变不影响实参 ...2.成员变量和局部变量区别 1)在类中的位置不同 成员变量在类中,方法外。 局部变量在方法中或者方法内 2)在内存中的位置不同 成...

    1.参数传递

    基本数据类型作为方法的参数传递时,形参改变不影响实参
    引用数据类型(比如数组)作为参数传递时,形参改变影响实参
    

    具体原理参照:https://blog.csdn.net/weixin_42458708/article/details/82219334

    2.成员变量和局部变量的区别

    1)在类中的位置不同
    成员变量在类中,方法外。
    局部变量在方法中或者方法内

    public class Test {	
    	int a;		//成员变量
    	public void print(){
    		int b; 		//局部变量
    	}
    }
    

    2)在内存中的位置不同
    成员变量:在堆内存中(成员变量属于new出来的对象,new出来的东西存放在堆中)
    局部变量:在栈内存中(局部变量在方法中,方法执行时,会加载到栈内存中)

    3)生命周期不同
    成员变量:随着对象的创建而存在,随着对象的消失而消失
    局部变量:随着方法的调用而存在,随着方法的调用完毕而小时

    4)初始化值不同
    成员变量:有默认值(因为它属于new出来的东西,放在堆中,堆中的东西都有默认值)
    局部变量:没有默认值,必须手动为它初始化一个值
    具体原理参照:https://blog.csdn.net/weixin_42458708/article/details/82219334

    展开全文
  • 局部变量\全局变量 局部变量 局部变量是写在一个函数内,并且只能在函数内调用。...局部变量和全局变量实例 #saving = 0 #全局变量 def save_money_in_n_week(money_per_week,total_week,increase_money...
  • SpringMVC请求参数和路径变量

    千次阅读 2018-10-13 23:41:33
    SpringMVC请求参数和路径变量 1.请求参数 2.路径变量 SpringMVC请求参数和路径变量 1.请求参数 1.请求参数是通过表单/URL?后面的参数,如xxxx:8080?name=springmvc&amp;age=6中的nameage就是请求参数 2....
  • kettle 参数——变量参数和常量参数

    千次阅读 2019-03-18 11:37:08
    kettle 参数——变量参数和常量参数 kettle中经常需要对sql语句进行处理,处理的时候免不了需要传递参数。下面就介绍一下kettle传递参数的两种方式,一种是常量传递,一种是变量传递。 好,下面上货。 一、首先...
  • C语言中变量声明和变量定义的区别

    千次阅读 2019-04-24 10:11:49
    程序中,变量有且仅一个定义。 变量声明:用于向程序表明变量的类型名字。 定义也是声明,extern声明不是定义 定义也是声明:当定义变量时我们声明了它的类型名字。 extern声明不是定义:通过使用exte.....
  • 1.shell中变量的定义使用 你可在任何编程语言中使用变量,但是在脚本编程(shell)中它们是没有类型的,简称弱类型编程语言,在这个变量中可以保含一个数字,一个字符串,一个单词等。你并不需要声明这个变量,它会...
  • def changeNum(num): ...# 定义变量num,赋初始值为10 num = 10 changeNum(num) print("函数调用后num = ", num) def changeList(list1) : list1.append('newStr') print("函数中的lis...
  • 全局变量和局部变量区别

    万次阅读 多人点赞 2018-05-13 16:15:15
    第一部分问题:今天一个小伙伴问我一个问题,如图程序1:咋一看没有问题啊,后来想想确实问题,这个c=a+a;似乎是语句,必须在函数体内才能执行,后来就看到这么一句话:赋值语句需要函数执行,c语言最基本的执行...
  • 答:有区别。 全局变量保存在内存的全局存储区,占用静态的存储单元;局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配存储单元。引申: C语言经过编译之后将内存分为以下五个区域 1.栈:由编译器...
  • 变量在类加载时就完成初始化工作,类变量在一个运行系统中只有一份供整个类实例对象共享的值,该值可能被类(及其子类)它们所创建的实例改变,每一次的改变都将影响到该类(及其子类)其他实例的调用。...
  • Python局部变量全局变量区别

    千次阅读 2018-05-29 15:31:52
    1. 定义 全局变量:在模块内、在所有函数外面、在class外面,这... 在def中,我们可以定义一个局部变量,该变量仅仅在函数体中生存期,出了这个函数体,变量就不能使用了。 def fun(): a = 10 print(a) re...
  • 设置变量——kettle参数和变量使用

    千次阅读 2018-02-27 17:12:49
    1 kettle使用参数时,如果参数位置是字符串(数字也可以加),最好加引号 eg: 2 kettle设置变量为整个作业使用 2.1 整个作业的预览图 在这个作业里面,从“转换设置变量” 开始之后的各个分支不是并发...
  • 常量和变量区别

    千次阅读 2017-09-25 15:31:21
    1、常量的值不可以修改,任何尝试修改常量的操作都会导致编译出错。变量可以通过赋值来改变值。 ...(汇编语言中中操作数三种:寄存器操作数、存储器操作数立即数。其中立即数相当于高级语言中
  • postman 接口参数 设置变量传参

    万次阅读 2018-05-04 12:52:53
    postman 的Pre-request Script 可以设置请求参数值。通过参数化的方式设置。可以避免我们二次测试时修改参数时不必要的错误。在postman中使用变量传参 格式是 {{KEY}}。如上面的格式...
  • 稍后更新。。。。 转载于:https://www.cnblogs.com/Chamberlain/p/10611029.html
  • 举例来说 ,在一棵树上求mu'b目标值为target的路径,对于参数有这样集中应用情况 1.全局变量记录当前路径之sum,存储当前节点的vector&lt;int&gt;也可以当成全局变量 我们每一次都是改变的这个全局变量...
  • spring 请求参数和路径变量

    千次阅读 2018-01-14 17:47:31
    请求参数和路径变量:客户端传递参数给服务端的两种方式 请求参数可以发送值传递给服务器,请求参数采用key=value的形式并使用“&”符号进行参数间的分隔,例如: ... 传递过来的值Spring MVC需要解析,采用@...
  • 当使用sed命令替换内容时,有时会用到变量,如 sed -i "s/^abc=[ -~]*/app=$2/g" fileName,$2="djdh/dfsadf/sdfa",这时要怎么办? 将命令行中/换成?即可 sed -i "s?^abc=[ -~]*?app=$2?g" fileName
  • 结构体变量和结构体指针的区别

    千次阅读 多人点赞 2019-06-23 13:11:44
    学了结构体很久了,以为自己能够很熟练了,今天发现自己今天成员运算符 (.) 指向运算符(->) 之间竟然犹豫了 其实成员运算符是结构体变量访问成员是用的。而指向运算符则是结构体指针访问成员时使用的,因为...
  • 1、添加参数,第一行是默认值 2、win命令引用 %参数名称% 3、shell命令引用 ${参数名称} 4、构建时选择,定时任务使用默认值直接构建
  • kettle参数变量详细讲解

    万次阅读 2014-10-17 17:17:56
    详细介绍kettle位置参数、命名参数变量之间的区别及用法
  • JavaScript的replace方法中参数变量

    千次阅读 2017-12-06 11:17:47
    最近在使用js的replace方法替换字符串中字母的时候,发现如果replace方法中的参数变量的情况下不能很好的使用全局替换,相信不少同学遇到跟我一样的情况. 在这里只需要使用如下方法就可以解决:  一个字符串str ...
  • 局部变量和全局变量区别

    千次阅读 2017-03-05 18:17:45
    1、全局变量 全局变量也成为外部变量,它是在函数外部...在C等面向过程语言中,局部变量可以全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。 #
  • 编程语言的三大发展阶段:面向机器语言、面向过程语言、面向对象语言 ; 其中面向对象语言主要体现三个特征:封装性、继承、...2、类声明的变量称为对象变量,也简称 对象 ; 3、class 关键字是用来定义类 ; 4、...
  • 1.在普通变量作为函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元。在函数调用时发生的值传送是把实参变量的值赋给形参变量。 2.在用数组名作为函数参数时,不是进行值得传递,即不是把是参数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,890,139
精华内容 1,156,055
关键字:

参数和变量有什么区别