自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 动态SQL

mybatis中特征之一是支持动态SQL通过标签的形式来动态编写SQL,根据业务逻辑来动态的进行SQL拼接功能mybatis提供九种动态SQL标签:trim/if/where/set/foreach/choose/when/otherwise/bind执行原理:使用OGNL从SQL参数对象中动态计算表达式的值,根据表达式的值动态拼接SQL,以此完成动态SQL的功能一、标签1.1 if标签动态SQL通常作为where子句的一部分常用于查询、插入、更新等操作场景:根据姓名、性别、姓名和性别查询相

2022-04-26 15:39:18 493

原创 Mybatis使用

一、接口绑定实现方式mybatis中接口绑定主要有两种实现方式● 通过注解绑定:就是在接口的方法上加上@Select、@update等注解,里面包含SQL语句进行绑定● 通过XML里面写SQL进行绑定,需要指定xml映射文件里的namespace必须为接口的全路径语句比较简单时,使用注解绑定,当SQL语句比较复杂是,用xml绑定,一般使用xml比较多二、XML方式的用法mybatis的强大之处在于自定义SQL语句,映射器的xml文件方式相比JDBC简单,节省代码量2.1使用步骤创建Mapp

2022-04-25 10:02:33 1162

原创 mybatis日志分析

一、日志框架依赖jar在pom.xml中配置log4j日志依赖 <!--log4j日志--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency>二、日志配置文件在resourc

2022-04-25 10:01:31 196

原创 Mybatis配置详解

全局配置文件:mybatisConfig.xml参考文档:https://mybatis.org/mybatis-3/zh/configuration.html#settingsproperties:读取外部资源这些属性可以在外部进行配置,并可以进行动态替换。既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。例如: <properties resource="db.properties"> <proper

2022-04-25 09:57:50 2367

原创 Web自动化测试

(谷歌浏览器)以百度服务器为例:“百度selenium如何使用####(谷歌浏览器)以百度服务器为例:“百度selenium如何使用”########导入selenium中的webdriver包from selenium import webdriver## 通过webdriver.Chrome()创建浏览器对象from selenium.webdriver.common.by import Byimport timedriver = webdriver.Chrome()## 获得浏.

2022-04-22 14:33:25 596

原创 Junit测试框架

测试是保证代码健壮必不可少的环节,自己构建测试方法比较慢,并且也不规范,java中提供了Junit测试框架可以进行一键构建单元测试一、Junit测试步骤添加Junit依赖在pom.xml中添加依赖项<!--Junit测试框架依赖--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <v

2022-04-11 15:48:33 224

原创 并发知识学习

一、并发和并行的区别并发是指多个线程操作同一个资源,不是同时执行,而是交替执行,单核CPU,只不过因为CPU的时间片很短,速度太快,看起来是同时执行。(例:张三、李四厨师,共用一口锅炒菜,交替执行)并行才是真正的同时执行,多核CPU。每个线程使用一个单独的CPU的资源来运行(张三、李四厨师,一人一口锅,一起炒菜)...

2022-04-07 20:38:38 600

原创 测试用例相关知识

测试用例定义设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果。如果程序在这种情况下不能正常运行,而且这种问题会重复发生,那就表示软件程序人员已经测出软件有缺陷,这时候就必须将这个问题标示出来,并且通知软件开发人员。软件开发人员获取通知后,将这个问题修改完成划于下一个测试版本内。软件测试工程师取得新的测试版本后,必须用同一个用例来测试这个问题,确保该问题已经被修改完成。-------->回归测试测试用例模板测试用例包含内容用例编号:测试用例文档中一个代号,

2022-04-07 17:19:13 741

原创 JMeter性能测试[2]

一、JMeter工作原理JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。用于性能负载测试。它旨在分析和衡量Web应用程序和各种服务的性能和负载功能行为。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。工作原理: 基于协议,通过多线程的方式模拟用户行为,设计各种场景压测服务端,得到性能数据,分析性能瓶颈二、JMeter脚本录制2.1、录制方案一:JMeter代理在JMeter中增加一个线程组。(脚本在

2022-04-07 16:41:11 590

原创 JMeter性能测试[1]

01 性能测试性质02 性能测试指标03 性能测试步骤04 性能测试JMeter要点介绍05 JMeter性能测试演示一、性能测试性质性能测试就是测试系统有没有性能问题。从时间、空间两方面可进行考虑,即服务端资源是否足够?响应时间是否超时?系统是否足够稳定?1.1 性能测试的核心原则基于协议、多线程、场景设计协议:所有的请求都是基于协议发出去 http,https,udp,tcp多线程:压力测试是基于多线程原理,通过线程去模拟用户的行为场景:控制器+定时器设计各种场景满足压测要求。(

2022-04-07 15:16:22 3612

原创 Mybatis介绍

一、JDBC编程及问题1.1 JDBC使用步骤(1)引入依赖jar包<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.39</version></dependency>(2)编程流程加载数据库驱动–>获取数据库的连接

2022-04-02 11:09:42 1231

原创 存在名称分别为ABC的三个线程,需要让线程打印自己名字,即三个线程按照ABC形式打印线程信息

思路分析:线程执行顺序必须是A线程执行、B线程执行、C线程执行A和B线程,在B线程中调用A.join()方法B和C线程,在C线程中调用B.join()package Thread.Test;public class ABCDemo extends Thread { private String threadName; private Thread thread; public ABCDemo(String threadName,Thread thread){

2022-03-29 20:22:57 189

原创 线程相关知识[2]

一、线程方法1.1 start():启动线程start():作用是启动一个新的线程,但start()方法不能重复调用public synchronized void start() { if (threadStatus != 0) throw new IllegalThreadStateException(); //线程组概念。已经被线程池替代 group.add(this); boolean started

2022-03-29 19:43:06 68

原创 线程相关知识[1]

线程和进程进程是计算机正在执行的一个独立的应用程序,是一个动态的概念,即必须是进行状态,如果一个应用程序没有启动,就不是进程线程是组成进程的基本单位,可以完成特定的功能,一个进程由一个或多个线程组成进程和线程的区别与联系1、内存空间:进程是有独立的内存空间,进程之间相互独立,互不干扰;线程共享内存空间。2、安全性:进程之间相互独立,一个进程的崩溃不会影响到其他的进程;线程内存共享,一个线程的崩溃可能会影响到其他线程的执行,线程的安全性不如进程联系:一个进程可以包含一个或多个线程java

2022-03-28 21:22:10 677

原创 SQL索引[2]--底层结构、实现原理、执行过程

一、索引底层结构MySQL支持两种索引:一种是基于B树索引、一种是基于哈希表索引,这两种索引的查询效率比较高1.1 B树(B+树)的索引结构1.1.1 B树特征大多数的存储引擎都支持B树索引,B树通常意味着所有的值按照顺序存储,并且每个叶子节点到根的距离相同,B树索引能顾加快数据访问的速度。查询效率O(log n)。B树特征:1、根节点至少包含两个孩子2、树中每个结点最多含有m个孩子(m >= 2)3、除了根节点和叶结点外,其他每个结点至少含有ceil(m/2)个孩子,ceil为向上

2022-03-23 17:03:05 1009

原创 MySQL事务

一、事务定义一个事务由一条或者是多条对数据库操作的SQL语句组成的一个不可分割的单元,只有当事务中所有的操作都正常执行完了,整个事务才会被提交到数据库,如果有部分事务处理失败,那么事务就要回滚到最初的状态,因此,事务要么全部执行成功,要么全部失败经典案例:银行转账二、事务特征(ACID)事务的原子性(Atomic)事务是一个不可分割的整体,事务必须具有原子特性,当堆数据修改是,要么全部执行,要么全不执行,即不允许部分执行事务的一致性(Consistency)一个事务执行之前和执行之后,数据库

2022-03-19 22:06:41 79

原创 SQL索引[1]

一、索引定义索引是一种数据结构,创建在表上的。是对数据库表中的一列或者是多列的值进行排序的一种结果,使用索引可以提高查询速度,避免全表扫描优势:提高查询效率,避免全表扫描缺点:索引并非越多越好,过多的索引会导致CPU的使用率居高不小二、索引分类普通索引:没有任何限制条件,可以给任何类型的字段创建普通索引唯一性索引:使用unique修饰的字段,值是不能重复,主键索引隶属于唯一性索引主键索引:使用primary key修饰的字段会自动创建索引单列索引:在一个字段上创建索引多列索引:在表中多个

2022-03-19 21:56:25 778

原创 SQL基础操作命令[2]

2、多表查询2.1 表与表关系2.1.1 一对一关系在一对一关系中,A表中的一行最多只能匹配B表中的一行,反之亦然。2.1.2 一对多关系一对多关系是最普通一种关系,A表中的一行可以匹配B表中的多行,但是B表中的一行只能匹配A表中的一行。例如:存在部门表和人员表之间具有一对多的关系,每个部门有很多的员工,但是每个员工只属于一个部门,只有当一个相关列是一个主键或者具有唯一性约束时,才能创建一对多的关系2.1.3 多对多关系在多对多的关系中,A表中一行可以匹配B表中的多行,反之亦然。要创建

2022-03-19 21:30:39 186

原创 SQL基础操作命令[1]

一、基础SQL操作命令1.1 连接和断开数据库连接MySQL服务器:mysql -u XXX -pXXX## mysql代表客户端命令 -u:是连接数据库的用户名 -p:需要输入密码退出数据库:exitquit1.2 库操作创建数据库:create database database_name;查看数据库:show databases;删除数据库:drop database database_name;选择数据库:use database_name;查看数据

2022-03-19 21:04:07 1293

原创 MySQL

MySQL属于关系型数据库,和其它的关系型数据库最大的区别在于支持可插拔式的存储引擎,其中InNoDB非常强大

2022-03-19 16:30:00 119

原创 接口测试相关知识

一、接口及接口测试定义1、接口API全称Application Programming Interface,  接口就是一个位于复杂系统之上并且能简化的任务,它就像一个中间人让你不需要了解详细的所有细节。像谷歌搜索系统,它提供了搜索接口,简化了你的搜索任务。再像用户登录页面,我们只需要调用我们的登录接口,就可以达到登录系统的目的。人类与电脑等信息机器或人类与程序之间的接口称为用户界面(UI接口)电脑等信息机器硬件组件间的接口称为硬件接口电脑等信息机器软件组件间的接口称为软件接口常见的接口名词:

2022-03-17 17:21:29 394

原创 【测试基础理论】

软件定义:计算机系统中与硬件相互依存的一部分(程序+数据+相关文档)软件分类按照功能划分:系统软件: 能够直接操作底层的硬件、并为上层软件提供支持的软件,如操作系统软件、各种硬件驱动程序等。应用软件: 能够为用户提供某种特定条件的应用服务的软件,如金山词霸按照技术架构划分单机软件: 直接在单个计算机上安装并运行的软件,如画图工具分布式软件: 包括C/S和B/S结构软件C/S 结构软件:C指的是客户端(Client),S指的是服务器端(SERVER)。这种软件是基于局域网或互联网的,需要一

2022-03-16 15:31:19 87

原创 HTTP协议

HTTP协议(Hyper Text Protocol-超文本传输协议) 用于万维网(www:World Wide Web)服务器传输超文本到浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)HTTP请求消息结构: 请求行(request line)、请求头(header)、空行和请求数据四部分请求行:由请求方法字段、URL字段和HTTP协议版本字段三个字段构成。 如:GET/index.html HTTP/1.1根据HTTP标准,HTTP请

2022-03-15 21:31:50 88

原创 Redis内存淘汰策略

在redis作为缓存使用的过程中,当内存不足时,redis根据配置进行缓存淘汰大部分keys,保证后续写入能够成功。过期策略redis中对过期的数据处理,有以下三种方式:定时过期:对每个设置过期时间的key都需要建一个定时器,到达设定的过期时间会立即清除。该方法对内存友好,对CPU不友好,会占用大量的CPU资源去处理过期数据惰性过期只有当访问一个key时,才会判断key是否过期,该方案最大化的节省CPU资源,但会占用内存资源(对CPU友好,对内存不友好)定期过期每隔一定的时间,会扫描一定数

2021-12-03 20:56:04 54

原创 JVM的内存模型

Java的内存布局java的内存布局分为5部分:方法区、堆区、虚拟机栈、本地方法栈、程序计数器注: 绿色区域为线程共享区域,红色区域为线程私有空间内存区域的维度:作用、是否线程共享、生命周期、异常问题(OOM)1、程序计数器程序计数器是一个较小的内存空间区域,用来表示当前线程执行的字节码的行号指示器。由字节码解释器的工作时通过改变计数器的值来选择下一条要执行的字节码执行。对于分支、循环、异常等都需要依赖计数器来指定执行位置,该区域是线程独有的,每一个线程都有单独的计数器。线程是否共享:线

2021-11-01 14:41:43 70

原创 JVM介绍

JVM基础知识1.Java的跨平台特性JVM是用C/C++开发,编译生成机器码,不能跨平台,不同的平台需要安装不同的JVM。Java源码编译会生成字节码.class文件,JVM负责将字节码文件翻译成特定平台下的机器码进行执行,实现了“一次编译、到处运行”的目的实现跨平台特性是Java程序,不是JVM2.JVM概念JVM(Java Virtual Machine)即Java虚拟机JVM是Java的核心和基础,在Java编译器和系统之间虚拟出来的机器,是利用了软件方法实现了计算机下层的操作

2021-10-31 20:34:08 129

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除