
java技术
jacljh
程序匠人
展开
-
jmeter实现multipart/form-data类型请求
http请求常见的content-type分为3种:application/json、x-www-form-urlencoded、multipart/form-data,这里重点说下multipart/form-data。multipart/form-data主要用于post请求体中需要上传文件的场景,在项目实践中遇到过当post请求体中既需要上传文件,又需要传一般的json格式参数这种场景,下面是在我实际测试中遇到的multipart/form-data格式请求的发送:1、填写protocal、h转载 2020-07-04 11:24:30 · 3632 阅读 · 0 评论 -
JMeter笔记
https://www.cnblogs.com/xiaoyu2018/tag/JMeter/转载 2020-07-04 11:21:44 · 254 阅读 · 0 评论 -
jmeter中用json提取器提取响应数据中的多个值
json串 []表示对象组成的数组,{}表示对象。对象里包含多个 "属性":属性值。属性值可以是值,或数组,或对象。JSON Extractor使用jsonpath表达式匹配,可以一次取多个变量值。$表示响应的根对象。取子对象或对象的属性用. 取数组里的对象用[],数组索引从0开始。示例:例1 找一个响应结果是json格式的,分析响应结果。比如下面的响应整个是个数组,其中有4个对象。因此取值用$[索引取0-3或*取所有].属性值例2 如果响应类似...转载 2020-07-04 11:03:29 · 6400 阅读 · 0 评论 -
【Jmeter】参数Parameters和Body Data
在做接口并发测试的时候,才发现Jmeter中的Parameters和Body Data两种参数格式并不是简单的一个是xx=xx,另外一个是json格式的参数先看一个接口[post] /api/xx/xxxx/xxxx 通知服务端文件上传完毕输入参数:http content type: application/json名称 | 类型 | 是否必须 | 参数限制 | 描述--------- | ----------- | -------- | ---------- | ----------转载 2020-07-04 09:59:05 · 694 阅读 · 0 评论 -
Jmeter 设置 【HTTP 请求默认值】
一般情况下,我们在一个项目中调用的接口中域名、端口等都是相同的。当我们创建多个HTTP 请求时,由于这些数据是必填项,所以,我们就需要不停地填写相同的数据。如果项目进行过程中出现了更改域名、更改端口号等情况,我们又需要把每一个请求中的数据都做更改,这样看上去似乎有些麻烦了。下面我们就来介绍一种方法将这些相同的参数设置为默认的,每次创建 HTTP 请求时就不用再输入了,这就需要我们配置【HTTP 请求默认值】来实现了。这次依然用百度搜索关键字做例子,来解释。1)我们先创建两个 HTT...转载 2020-07-04 09:37:24 · 672 阅读 · 0 评论 -
@value 注解配置默认值
@Value在注解模式下读取配置文件注入属性值代码如下: @Value("${name}") private String name;但是,如果配置文件中没有设置 name的值, spring在启动的时候会报错。这时需要给name配置默认值,代码如下: @Value("${name:bob}") private String name;除了String类型外,其他类型也可如上配置 @Value("${age:250}") priv...转载 2020-06-21 00:16:27 · 1771 阅读 · 0 评论 -
MySQL 存储过程简单使用
下面是存储过程的例子,删除给定球员参加的所有比赛:mysql> delimiter $$ #将语句的结束符号从分号;临时改为两个$$(可以是自定义) mysql> CREATE PROCEDURE delete_matches(IN p_playerno INTEGER) -> BEGIN -> DELETE FROM MATCHES -> WHERE playerno = p_playerno; -> END$$ Query OK, 0 rows affect原创 2020-06-15 15:25:23 · 289 阅读 · 0 评论 -
mybatis自动生成代码
generatorConfig.xml :<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd...原创 2020-04-05 10:48:26 · 222 阅读 · 0 评论 -
Eclipse自动生成Mybatis相关的数据库操作文件(dao、xml和实体类)
在Eclipse自动生成Mybatis数据库操作文件有两种办法,一种是按照Mybatis-generator插件,这种方法在此不描述了;另外一种是在工程中引入Mybatis-generator的相关jar包,并编写generatorConfig.xml文件,已maven的方式运行即可。相关的配置操作如下。1.在pom.xml中进行mybatis的配置<plugin> ...转载 2020-03-28 15:46:52 · 654 阅读 · 0 评论 -
Eclipse安装lombok插件
1、下载lombok.jar,lombok.jar官方下载地址:https://projectlombok.org/download2、双击下载好的lombak.jar,安装步骤如下:2-1.关闭弹出的警告窗口,点击 Specify location..2-2.选择eclipse的安装目录2-3.点击Install / Update...转载 2020-03-26 14:08:36 · 322 阅读 · 1 评论 -
IDEA中Lombok插件的安装及使用
这个插件的好处在于可以让我们的代码更简洁,减少一些重复的工作,最常用的就是@Data注解,比如在实体类上使用@Data注解,实体类的各个属性就不需要书写get和set方法。安装方法:1、File→Settings→Plugins,输入mybatis plugin,本地没搜到,就可以点击Search in repositories(或直接点击Browse repositories进入搜...转载 2020-03-23 12:53:31 · 398 阅读 · 0 评论 -
拆分数据库
1、为什么要拆分数据库? 单体项目在构建之初,数据库的负载和数据量都不大,所以不需要对数据库做拆分,小型财务系统、文书系统、ERP系统、OA系统,用一个MySQL数据库实例基本就够用了。请求变多时,第一个办法就是把MySQL替换成Oracle。但是请求量继续增大,单节点的Oracle数据库也不好用了,于是需要考虑告别单节点数据库,开始拆分数据库。从一个节点,变成多个节点。 2、什...原创 2020-01-02 10:55:25 · 382 阅读 · 0 评论 -
Java线程之间通信方式
通信方式: 1.同步 a.同步是指多个线程之间通过synchronize关键字这种方式来实现线程间的通讯。 b.这种方式本质上就是共享内存式的通讯。多个线程需要访问同一个共享变量,谁拿到了锁(获得了访问权限),谁就可以执行。 2.while轮询的方式 a.这种方式比较浪费资源,是因为JVM將调度器交给轮询线程执行时,它只是在不断地测试...原创 2019-12-31 11:02:23 · 373 阅读 · 0 评论 -
类加载流程
当程序使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、链接、初始化三个步骤对该类进行类加载。1、加载 类加载指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象。类的加载过程是由类加载器来完成,类加载器由JVM提供。我们开发人员也可以通过继承ClassLoader来实现自己的类加载器。 1.1、加载的class来源 ...原创 2019-12-30 18:56:45 · 339 阅读 · 0 评论 -
mysql如何查看表的索引以及如何删除表的索引
mysql中如何查看和删除唯一索引。查看唯一索引:show index from mytable;//mytable 是表名查询结果如下:查询到唯一索引后,如何删除唯一索引呢,使用如下命令:alter table mytable drop index mdl_tag_use_ix;//mdl_tag_use_ix是上表查出的索引名,key_name...原创 2019-12-26 14:18:35 · 233 阅读 · 0 评论 -
Mysql | 查看表的索引
查看表的索引:show index from table_name(表名)1结果列表中各字段的含义:· Non_unique如果索引不能包括重复词,则为0。如果可以,则为1。· Key_name索引的名称。· Seq_in_index索引中的列序列号,从1开始。· Column_name列名称。· Collation列以什么方式存储在索引中。在MyS...转载 2019-12-26 14:03:03 · 234 阅读 · 0 评论 -
项目版本上线常见问题汇总
问题种类 问题详情 问题原因 改进措施建议 备注 习惯问题 需要进行数据迁移时,发现旧数据没有备份 无备份习惯 养成数据备份习惯 开发问题 配置写入代码中 1、测试不充分 2、开发人员代码不够规范 3、对代码审查不够 1、开发人员注意代码规范,避免Hard code 2、加强对系统设计、代码规范的审查...原创 2019-12-25 14:09:16 · 1753 阅读 · 0 评论 -
SpringBoot使用@Value给静态变量注入值
SpringBoot中使用@Value()只能给普通变量注入值,不能直接给静态变量赋值例如,application-dev.properties 配置文件有如下配置:给普通变量赋值时,直接在变量声明之上添加@Value()注解即可,如下所示:当要给静态变量注入值的时候,若是在静态变量声明之上直接添加@Value()注解是无效的,例如:虽然没有编译和运行上的报...转载 2019-10-29 15:05:19 · 629 阅读 · 0 评论 -
java中split方法需要转义的字符
今天在写项目的时候遇到关于字符串的split方法的问题,由于不知道遇到哪些字符需要进行转义,所以我将键盘上能看到的所有符号都试验了一遍最终发现需要进行转义的字符如下:"|.+*^?[\\{()$"下面贴出我用来测试的代码: String str = "|.+*^?[\\{()$"; String str2 = "1haha*2kk*34kk44...转载 2019-10-29 11:41:25 · 529 阅读 · 0 评论 -
JMeter - 业务场景的自动化测试记录
思路:1、配置数据在数据库表(通过数据库表配置场景)2、根据表初始化数据到CSV文件3、运行JMeter 场景测试项目原创 2019-10-24 18:31:36 · 534 阅读 · 1 评论 -
JMeter 接口自动化测试(手工转自动化脚本)
之前写过一篇关于 JMeter 手工测试的文章(https://www.jianshu.com/p/b5d2fd5e2b9d),今天我们在原来的基础上修改一下看看如何做接口的自动化。首先来回顾一下前面写好的脚本:这里请求发送的参数我们还是只填两项必填的 key 和 location 。实现接口自动化时,只需要把这两项具体内容修改成参数化用变量代替,然后在跑脚本时把具体的值传进去使用即可...转载 2019-10-24 18:26:07 · 1604 阅读 · 0 评论 -
@Mock与@InjectMocks的区别
@Mock与@InjectMocks的区别@Mock: 创建一个Mock. (使用Mock打桩)@InjectMocks: 创建一个实例,简单的说是这个Mock可以调用真实代码的方法,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。注意:必须使用@RunWith(MockitoJUnitRunner.class)或Mockito.initMocks(this...原创 2019-10-23 18:19:30 · 741 阅读 · 0 评论 -
webservice总结
一、webservice介绍1. webservice 也叫作web服务。是java1.5以后推出的 。跨平台跨语言的远程调用技术。 客户端与服务端项目之间的交互、数据传递。2. webservice技术,客户端与服务端进行通讯使用的协议是soap协议。(如果是基于restful风格的webservice,使用http协议。)3. soap协议使用wsdl说明书作...原创 2018-07-22 08:30:51 · 780 阅读 · 0 评论 -
Redis相关介绍
一、为什么需要NoSQL(泛指非关系型数据库,英文:Not Only SQL) (关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据 库是基于特殊的结构,并将数据存储到内存的数据库。从性能上而言,nosql数据库 要优于关系型数据库,从安全性上而言关系型数据库要优于nosql数据库,所以在实 际开发中一个项目中nosql和关系型数据库会一起使用,达到性能...原创 2018-07-22 23:22:58 · 142 阅读 · 0 评论 -
正则表达式(一)
一、什么是正则正则是匹配特定格式文本的一种模式。一句话:正则表达式为匹配文本的一组标记符. 说白了,就是一些字符( 元字符),匹配了多少次(重复),在哪里(位置)匹配的范式. 有几个关键字:元字符,重复,位置二、元字符一句话:对于以元字符转为大写为最反义,字符组中加“^”取反义,元字符本身需转义表1.常用的元字符 代码 说明 . 匹配除换行符以外的任意...原创 2018-10-22 11:17:16 · 242 阅读 · 0 评论 -
正则表达式 - - java.util.regex 包 (二)
java.util.regex 包主要包括以下三个类: Pattern 类: pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。 Matcher 类: Matcher 对象是对输入字符串进行解释和匹配...原创 2018-10-22 11:41:30 · 146 阅读 · 0 评论 -
正则表达式 - - Pattern 和 Matcher 类 (三)
一、Pattern类Pattern类中有两个最常用的方法:(1)boolean isMatch = Pattern.matches("regExp", "string");matches()方法表示正则表达式regExp是否匹配字符串string,匹配返回true,不匹配返回false注意:String类也有matches()方法,如"abcd".matches(regExp),其实...原创 2018-10-22 11:45:54 · 186 阅读 · 0 评论 -
Java关键字final、static使用总结
一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final成员...转载 2018-10-29 15:06:18 · 154 阅读 · 0 评论 -
tailf、tail -f、tail -F三者区别
tail -f 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止tail -F 等同于--follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪tailf等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后...转载 2018-10-30 11:10:49 · 4468 阅读 · 0 评论 -
领域模型中的实体类分为四种类型:VO、DTO、DO、PO
经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析。得出的主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应于数据库中存储的数据(数据表),DTO对应于除二者之外需要进行传递的数据。一、实体类百度百科中对于实体类的定义如下:实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,...转载 2018-10-30 11:45:08 · 1359 阅读 · 1 评论 -
Row was updated or deleted by another transaction 异常原因及处理(乐观锁)
org.hibernate.StaleObjectStateException:Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.xx.xx:11]说明操作的对象时应用了乐观锁机制,或定义pojo时定义了version字段.错误原因:当在进行...转载 2018-11-01 10:30:47 · 1929 阅读 · 0 评论 -
Java程序为何“编译一次,到处运行”
与其他语言相比,Java程序能够做到“编译一次,到处运行”,可见它的跨平台性非常强。但是java的这种跨平台到底是怎么一回事啊,在这之前我们先了解一下不能跨平台是怎么一回事。 C或者C++等高级语言,是贴近于人类可阅读的语言,比较接近于英语语法。但是计算机只识别0、1序列组成的机器指令。所以要把C或者C++语言翻译成计算机能识别的0、1序列组成的机器指令。担任这种翻译工作的就是...转载 2018-11-03 22:58:51 · 822 阅读 · 0 评论 -
类,对象,面向对象以及三大特征
一、 类和对象面向对象程序设计中两个重要的概念:类和对象1、简单来说:对象的抽象化是类,类的具体化就是对象。类是一种抽象的概念,是对现实生活中事物的描述,类是对某一批对象的抽象,它不是实际存在的事物。对象是一个实际存在的实体,从这个意义上讲,万物都是对象。我们日常所说的人,都是人的实例,而不是人类。2、现实中是先有对象,然后对这些对象进行描述,对对象的属性和方法进行抽取形成类。在Jav...转载 2018-11-03 23:32:43 · 672 阅读 · 0 评论 -
单链表的实现-JAVA
一、单链表的概念 链表是最基本的数据结构,其存储的你原理图如下图所示 上面展示的是一个单链表的存储原理图,简单易懂,head为头节点,他不存放任何的数据,只是充当一个指向链表中真正存放数据的第一个节点的作用,而每个节点中都有一个next引用,指向下一个节点,就这样一节一节往下面记录,直到最后一个节点,其中的next指向null。 链...转载 2018-11-09 10:24:17 · 163 阅读 · 0 评论 -
JVM, JRE, JDK关系
JVM, JRE, JDK的概念很简单: 再来看下java的一次编译,到处运行: 可见, 到处运行的功臣在于JVM.----------------------------转载:https://blog.youkuaiyun.com/stpeace/article/details/78598614...转载 2018-11-04 10:36:59 · 138 阅读 · 0 评论 -
Update误操作后如何恢复数据
问题今天在公司操作用户表,要求更新某个用户的密码字段,结果在写更新语句的时候忘记加条件了,导致所有用户数据都被更新了,瞬间慌神了,表中可有几十条数据,而且密码都是MD5加密的,于是赶紧查资料,使用了数据恢复方法,目前数据已成功恢复,所以在这里总结一下,希望以后在遇到同样问题的时候能够快速的解决。解决方法系统:windows xp 数据库:oracle9i 工具:plsql采用的方法...转载 2018-11-02 13:51:36 · 868 阅读 · 0 评论 -
Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) 异常原因及处理
主因 : 事务对程序的影响原因一: 查询出来的对象和update的对象不是同一个解决: 用查询出的对象进行set 值, 再用同一个对象update原因二: 查询出来的对象在缓存中一段时间 , 之后再进行的update解决: 把这个对象从缓存中剔除(如需要对象属性可先get保存到变量中) , 在update之之前再查询出来进行update原因三: 同一对象查询了多次 , 数据...原创 2018-11-02 14:02:20 · 20439 阅读 · 0 评论 -
Java泛型中E、T、K、V等的含义
Java泛型中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型)? - 表示不确定的java类型 S、U、V - 2nd、3rd、4th typesObject跟这些标记符代表的java类型有啥区别呢? Obje...转载 2018-11-04 17:56:27 · 215 阅读 · 0 评论 -
深入分析Java方法反射的实现原理
前段时间看了笨神的从一起GC血案谈到反射原理一本,就把Java方法的反射机制实现撸了一遍。方法反射实例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class ReflectCase { pub...转载 2018-11-04 18:33:55 · 141 阅读 · 0 评论 -
深入理解java反射机制
一,java的核心机制java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection):Java虚拟机:是运行所有Java程序的抽象计算机,是Java语言的运行环境,在其上面运行Java代码编译后的字节码程序,java虚拟机实现了平台无关性。Java垃圾回收(Garbage Collection):自动释放不用对象内...转载 2018-11-05 10:37:13 · 127 阅读 · 0 评论