自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

秃头青年的学习记录博客

想靠技术吃饭的底层青年

  • 博客(124)
  • 收藏
  • 关注

原创 软件测试-unittest框架

比如: 测试登录,每个用中都要重复书写的代码可以写在Fixture代码结构中,只写一遍,但是每次用例方法的执行,都会执行Fixture中的代码.1.打开浏览器,2.输入网址。TestLoader(测试加载),作用和TestSuite的作用是一样的,对Testsuite功能的补充,用来组装测试用列的。Fixture(测试夹具),书写TestCase(测试用例)代码中,是一个代码结构,可以在每个方法执行前后都会执行的内容。TestRunner(测试执行,测试运行) 用来执行TestSuite(测试套件)的。

2024-06-19 12:52:08 838

原创 软件测试--Mysql快速入门

以上的案例中,隐藏着一个前提条件:A扣钱和B加钱,要么同时成功,要么同时失败,事务的需求就在于此。在实际应用中,执行 SELECT 语句的次数远远大于执行 INSERT、UPDATE 和DELETE 语句的次数,甚至可以占到 80%~90%,所以为表建立索引是必要的。因为更新表时,不仅要保存数据,还要保存索引文件;左连接:查询的结果为两个表匹配到的数据加左表特有的数据,对于右表中不存在的数据使用null填充。右连接:查询的结果为两个表匹配到的数据加右表特有的数据,对于左表中不存在的数据使用null填充。

2024-06-10 18:14:23 1041

原创 软件测试--Linux快速入门

# :# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!常见格式(扩展名):.tar.gz, .tgz, .gz, .Z, .bz2, .xz。-# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!*.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩。*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩。*.tar.xz tar 程序打包的文件,其中并且经过 xz 的压缩。

2024-06-07 17:39:56 945

原创 初级软件测试快速入门

什么是软件测试?使用技术手段验证软件是否满足需求主流技能功能测试自动化测试接口测试性能测试软件测试的目的减少BUG,保证软件质量。

2024-06-07 11:13:25 356

原创 普中51-74HC595(串转并)-控制点阵

74HC595 需要用到的控制管脚 SER(串行数据输入)、RCLK、SRCLK 直接连 接到 51 单片机的 P3.4-P3.6 IO 口上,输出端则是直接连接到 LED 点阵模块的行 端口上,即为 LED 发光二极管的阳极,LED 点阵的列则为发光二极管的阴极。12 脚 RCK( STCP) : 存储寄存器时钟输入(上升沿时数据存入寄存器)11 脚 SCK( SHCP) : 移位寄存器时钟输入 (上升沿时数据输入)14 脚 SER( DS) : 串行数据输入。13 脚 G 非( OE) : 输出有效。

2023-09-25 16:48:07 632

原创 SpringBoot整合Redis缓存-JedisPool使用

【代码】SpringBoot整合Redis缓存-JedisPool使用。

2023-09-22 10:03:41 1058

原创 普中51-矩阵按键

行列扫描法检测时,先送一列为低电平,其余几列全为高电平(此时我们确 定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电 平(这时我们又确定了行数),则我们便可确认当前被按下的键是哪一行哪一列 的,用同样方法轮流送各列一次低电平,再轮流检测一次各行是否变为低电平, 这样即可检测完所有的按键,当有键被按下时便可判断出按下的键是哪一个键。当然我们也可以将行线置低电平,扫描列是否有低电平。然后再翻转,使所有列线都为低电平,检测所有行线的值, 由于有按键按下,行线的值也会有变化,记录行线的值。

2023-09-20 16:59:36 725

原创 封装七牛云存储工具类

我们就需要使用七牛云提供的Java SDK完成图片上传和删除,我们可以参考官方提供的例子。//———https上传,自动识别上传区域—— //Zone.httpsAutoZone。方案二:使用开源的分布式文件存储系统,例如Fastdfs、HDFS等。分服务器处理的目的是让服务器各司其职,从而提高我们项目的运行效率。在实际开发中,我们会有很多处理不同功能的服务器。//———http上传,自动识别上传区域——文件服务器:负责存储用户上传文件的服务器。方案三:使用云存储,例如阿里云、七牛云等。

2023-09-18 10:52:11 366

原创 普中51-独立按键实验

我们知道单片机的 IO 口既可作为输出也可作为输入使用,当检测按键时用 的是它的输入功能,独立按键的一端接地, 另一端与单片机的 I/O 口相连,开 始时先给该 IO 口赋一高电平,然后让单片机不断地检测该 I/O 口是否变为低 电平,当按键闭合时,即相当于该 I/O 口通过按键与地相连,变成低电平,程 序一旦检测到 I/O 口变为低电平则说明按键被按下,然后执行相应的指令。由于机械点的弹性作用,按键开关在闭合时不会马上稳定的接通,在断开时 也不会一下子断开,因而在闭合和断开的瞬间均伴随着一连串的抖动。

2023-09-17 23:06:30 814

原创 普中51-数码管实验

多位数码管,即两个或两个以上单个数码管并列集中在一起形成一体的数码 管。当多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线 (a-dp)全部是连接在一起的,独立的公共端可以控制多位一体中的哪一位数码 管点亮,而连接在一起的段线可以控制这个能点亮数码管亮什么数字,通常我们 把公共端叫做“位选线”,连接在一起的段线叫做“段选线”,有了这两个线后, 通过单片机及外部驱动电路就可以控制任意的数码管显示任意的数字了。

2023-09-16 13:26:54 1304

原创 普中51-蜂鸣器实验

图 中并没有使用三极管进行电流放大,而是使用 ULN2003 芯片来驱动,这里我们只需知道当 P25 输出高电 平,BEEP 则输出低电平;当 P25 输出低电平,BEEP 则输出高电平,类似一个非 门。开发板上使用的是无源蜂鸣器,它需要一定频率的脉冲(高低电平)才会发 声,因此需要让 P25 脚以一定频率不断输出高低电平信号才能控制蜂鸣器发出声音。若要改变音调可以修改延时时间,但要注意频率不能太大或者太小,具体大 家可以试着调试。若要改变音量,可以修改 BEEP 输出高电平时间。

2023-09-14 15:06:38 1872

原创 普中 51 单片机点亮LED灯

code:表示程序所占用 FLASH 的大小。data:数据储存器内部 RAM 占用大小。xdata:数据储存器外部 RAM占用大小。该函数的作用是将指定长度的字符从字符串的左侧开始移动到右侧,并将右侧的空位填充为指定的字符。为啥要进行延时操作?依据人的肉眼余晖效应, 延时时间不能太短,否则就无法观察到 LED 闪烁。函数是C语言中的一个字符串操作函数,用于循环左移字符串。通过位运算符for循环实现流水灯效果。

2023-09-11 22:45:56 487

原创 Mapper层公共字段自动填充

*** 自定义注解,用于标识某个方法需要进行功能字段自动填充处理*/ @Target(ElementType . METHOD) //指定注解只能加在方法上 @Retention(RetentionPolicy . RUNTIME) //用于描述注解的生命周期 public @interface AutoFill {//指定一个属性,指定当前数据库的操作类型,使用枚举 OperationType value();OperationType是定义的一个公共枚举/*** 数据库操作类型/**

2023-08-06 10:39:51 335

原创 @Builder造成的MyBatis-数组下标越界异常

在实体类上加上@Builder,会以为类加上了全参构造函数,无参数构造函数。如果此时你去使用new 对象的方式,会发现报错,因为你的实体类里面没有构造方法和全参构造方法,两者产生冲突,导致报错。但是如果你在实体类中添加了构造方法也可以解决这个问题。但是这种处理方式比较繁琐。

2023-07-29 17:24:57 300

原创 牛客网-刷SQL(10)

先执行from,在执行group by (这里分组之后会出现下面这个现象,只会查出表中出现在前面的university,重复的并不会查出来),在执行select 在执行 min 最后会发现,device_id 对应不上。这个顺序中,所有的查询语句都是从FROM开始执行的。在实际执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入。题目:现在运营想要找到每个学校gpa最低的同学来做调研,请你取出每个学校的最低gpa。3214 male 复旦大学 4 15 5 25。

2023-07-23 14:13:50 327

原创 学习JDBC-这篇博客足矣!

在开发中我们使用的是java语言,那么势必要通过java语言操作数据库中的数据。这就是接下来要学习的JDBC。Statement对象的作用就是用来执行SQL语句。而针对不同类型的SQL语句使用的方法也不一样DML//1. 注册驱动 // Class.forName("com.mysql.jdbc.Driver");

2023-07-09 11:35:40 510

原创 SpringCloud-Nacos配置管理

微服务部署的实例越来越多,达到数十,数百时,逐个修改微服务配置就会让人抓狂,而且容易出错。微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。Nacos一方面可以将配置集中管理,另一方面可以在配置变更时,及时通知微服务,实现配置的热更新。可以看出来,不管是dev,还是test环境,都读取到了envSharedValue这个属性的值。我们最终的目的,是修改nacos中的配置后,微服务中无需重启即可让配置生效,也就是。

2023-07-02 20:32:55 1607

原创 SpringCloud-Nacos注册中心

Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。修改order-service的application.yml文件,修改负载均衡规则:(杭州机房内的order-service应该优先访问同机房的user-service。

2023-06-29 00:01:07 634

原创 Nacos安装指南

GitHub的Release下载页:https://github.com/alibaba/nacos/releases。Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。GitHub主页:https://github.com/alibaba/nacos。Nacos依赖于JDK运行,索引Linux上也需要安装JDK才行。Linux或者Mac安装方式与Windows类似。上传到Linux服务器的某个目录,例如。开发阶段采用单机安装即可。然后重命名为java。

2023-06-11 22:01:38 1448

原创 SpringCloud(五)

代码方式:在order-service中的OrderApplication类中,定义一个新的IRule:配置文件方式:在order-service的application.yml文件中,添加新的配置也可以修改规则:userservice : # 给某个微服务配置负载均衡规则,这里是userservice服务 ribbon : NFLoadBalancerRuleClassName : com.netflix.loadbalancer.RandomRule # 负载均衡规则注意。

2023-06-11 21:19:04 812

原创 牛客网刷题学习SQL(九)

需要注意的是,DATE_ADD函数可以对日期进行加减操作,但不能对时间进行加减操作。同时,如果要对日期进行减法操作,可以使用DATE_SUB函数。其中,date表示要进行加减操作的日期,value表示要加减的数量,unit表示要加减的单位,可以是YEAR、MONTH、DAY、HOUR、MINUTE、SECOND等。在上面的基础上在查出某一天之后用户第二天在答题的情况,例如:通过左连接查询qpd中23号的数据、unique_id中24号的数据,从而筛选出的数据放在date2字段。

2023-06-06 23:01:33 798

原创 SpringCloud(四)

SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下:拦截我们的RestTemplate请求http://userservice/user/1RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表。

2023-06-03 23:56:19 559 1

原创 SpringCloud(三)

注意:一个微服务,既可以是服务提供者,又可以是服务消费者,因此eureka将服务注册、服务发现等功能统一封装到了eureka-client端。下面,我们将order-service的逻辑修改:向eureka-server拉取user-service的信息,实现服务发现。为了演示一个服务有多个实例的场景,我们添加一个SpringBoot的启动配置,再启动一个user-service。最后,我们要去eureka-server中拉取user-service服务的实例列表,并且实现负载均衡。

2023-06-02 23:13:22 1582

原创 牛客网刷题学习SQL(八)

限定条件:2021年8月,写法有很多种,比如用year/month函数的year(date)=2021 and month(date)=8,比如用date_format函数的date_format(date, “%Y-%m”)=“202108”题目数量:count(question_id)每天:按天分组group by date。

2023-06-02 21:48:04 81

原创 利用云服务器搭建云盘(搭建自己的在线存储&&可上传下载可共享)

docker对于运行过的image都保留一个状态(container),可以使用命令docker ps来查看正在运行的container,对于已经退出的container,则可以使用docker ps -a来查看。如果你退出了一个container而忘记保存其中的数据,你可以使用docker ps -a来找到对应的运行过的container使用docker commit命令将其保存为image然后运行。出现上述的错误,是因为docker容器里面已经存在,如果不需要,则删除。

2023-06-02 10:10:34 1573

原创 SpringCloud(2)

修改order-service中的根据id查询订单业务,要求在查询订单的同时,根据订单中包含的userId查询出用户信息,一起返回。但是,服务提供者与服务消费者的角色并不是绝对的,而是相对于业务而言。如果服务A调用了服务B,而服务B又调用了服务C,服务B的角色是什么?:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口):一次业务中,被其它微服务调用的服务。(提供接口给其它微服务)因此,服务B既可以是服务提供者,也可以是服务消费者。任何分布式架构都离不开服务的拆分,微服务也是一样。

2023-06-02 00:57:26 424

原创 牛客网刷题学习SQL(七)

三个年龄段,分别查看不同年龄段用户的明细情况,请取出相应数据。

2023-06-01 21:08:38 103

原创 牛客网刷题学习SQL(六)

case函数的两个使用方法:

2023-06-01 20:53:51 104

原创 牛客网刷题学习SQL(五)

相对之前的sql练习,我们这次使用了union all关键词。

2023-05-30 22:48:33 1072

原创 牛客网刷题学习SQL(四)

参加了答题的山东大学的用户在不同难度下的平均答题题目数。题目分析:==> 参加了答题的山东大学的用户在不同难度下的平均答题题目数> + 大学、不同难度 group university,difficult_level> + 平均答题题目数 count(question_id)/count(distinct device_id) 统计用户的时候需要去重,还有就是指明是哪个表中的属性> 最后通过左连接查询,还有就是保留四位小数使用round(x,4)

2023-05-30 14:43:03 163

原创 SpringCloud(1)

单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件。

2023-05-29 23:51:48 565

原创 牛客网刷题学习SQL(三)

其中,number 表示要进行四舍五入的数字,decimal_places 表示要保留的小数位数。如果 decimal_places 为正数,则表示保留的小数位数;如果 decimal_places 为负数,则表示舍入到小数点左侧的位数。请你写一个SQL查询,计算不同学校、不同难度的用户平均答题量,根据示例,你的查询应返回以下结果(结果在小数点位数保留4位,4位之后四舍五入):**在实际应用中,ROUND() 函数通常用于数据统计、报表生成等场合,可以对数字进行格式化处理,使其更符合人类的阅读习惯。

2023-05-29 23:33:50 869

原创 牛客网刷题学习SQL(二)

该题考查==distinct、join on、left join on、inner join on 、group by、order by==这些关键词的使用

2023-05-29 22:45:42 635

原创 牛客网刷题学习SQL

最后一行表示:id为7的用户的常用信息为使用的设备id为4321,性别为男,年龄26岁,复旦大学,gpa为3.6在过去的30天里面活跃了9天,发帖数量为6,回答数量为52。第一行表示:id为1的用户的常用信息为使用的设备id为2138,性别为男,年龄21岁,北京大学,gpa为3.4在过去的30天里面活跃了7天,发帖数量为2,回答数量为12。最后一行表示:id为7的用户的常用信息为使用的设备id为2135,在question_id为117的题目上,回答错误。复旦大学 4.0 15 5 25。

2023-05-28 23:43:34 583

原创 Swagger简单了解

使用swagger你只需要按照它的规范去定义接口及接口相关信息,在通过swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。knife4j是为javaMVC框架集成Swagger生成Api文档的增强解决方案。在LoginCheckFilter中设置不需要处理的请求路径。设置静态资源,否则接口文档页面无法访问。导入knife4j的maven坐标。导入knife4j相关配置类。swagger接口调试。

2023-05-09 21:30:49 747 1

原创 Nginx快速入门

nginx介绍nginx是一款轻量级的web服务器/方向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪等。nginx是由伊戈尔·塞索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日官网:https://nginx.org/nginx下载和安装。

2023-05-07 22:41:25 671

原创 项目实现读写分离操作(mysql)

对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说,将数据库拆分为主库和从库,主库负责处理事务性的增删改操作,从库负责处理查询操作,能够有效的避免由数据更新导致的行锁,使得整个系统的查询性能得到极大的改善。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。==注意:==上面sql的作用是查看Master的状态,执行完此sql后不要再执行任何操作。第四步:登录mysql数据库,执行下面sql,查看从数据库的状态。

2023-05-06 21:25:23 3693

原创 读写分离(sharding-JDBC)---从库报错问题处理

问题出现原因:在主库上进行删除了一个数据库aaa,然后在其他的服务器上在搭建主库的从库,在从库上没有相应都已经删除的数据库aaa而导致的Slave_IO_Running: Yes,Slave_SQL_Running: No。处理的办法:停掉从库,然后在创建相应的已经删除的信息,然后在开启从库。

2023-05-05 23:00:29 548 2

原创 缓存优化----SpringCache

前面我们已经实现了移动端套餐查看功能,对应的服务端方法为SetmealController的list方法,此方法会根据前端提交的查询条件进行数据库查询操作。在Springboot项目中,使用缓存技术只需在项目中导入相关的缓存技术的依赖包,并在启动类上使用@EnableCaching开启缓存技术支撑即可。spring cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。例如:使用redis作为缓存技术,只需要导入spring data redis的maven坐标即可。

2023-04-23 22:53:47 1156

原创 缓存优化---Redis缓存短信验证码

前面我们已经实现移动端手机验证码登录,随机生成验证码我们保存在httpSession中的!在本地redis中成功获取到验证码!成功登录后验证码成功被删除!

2023-04-21 16:23:30 365

空空如也

空空如也

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

TA关注的人

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