自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【项目】C++ 基于多设计模式下的同步&异步日志系统

前言一般而言,业务的服务都是周而复始的运行,当程序出现某些问题时,程序员要能够进行快速的修复,而修复的前提是要能够先定位问题。因此为了能够更快的定位问题,我们可以在程序运行过程中记录一些日志,通过这些日志我们便能够很容易地了解程序的运行状态,以及程序崩溃时的一些信息,有了这些信息我们便能够更好的定位问题以及分析问题了。本项目代码地址:日志系统C++ 基于多设计模式下的同步&异步日志系统前言日志系统的必要性项目相关介绍1、功能2、开发环境和工具3、核心技术4、环境搭建日志系统技

2024-03-13 02:13:18 1412 20

原创 【Qt】Qt属性动画

Qt动画框架提供了一种对 GUI 元素进行动画处理的简单方法,它使开发者能够对Widget或QObject的 Qt 属性值进行动画处理,该框架提供的大多数功能在Qt Quick中也可用,可以在其中以声明方式定义动画。在本概述中,我们将解释了其体系结构的基础, 并且提供一些的最常见动画处理技术的示例。

2024-07-14 08:00:00 943

原创 【MySQL】MySQL 程序工具包

在我们正常安装MySQL时,MySQL会为我们安装一个MySQL工具包,这个工具包内包含了MySQL中所有的可执行程序。以下是常用的MySQL程序:程序名作用mysqldMySQL的守护进程即 MySQL 服务器,要使用MySQL 服务器 mysqld必须正在运行状态mysqlMySQL客户端程序,用于交互式输入 SQL 语句或以批处理模式从文件执行SQL的命令行工具mysqlcheck用于检查、修复、分析和优化表的表维护客户端mysqldump。

2024-07-09 08:00:00 786

原创 【软件测试】测试用例的设计方法

最简单的测试用例是测试的纲要,仅仅指出要测试的内容,如探索性测试中的测试设计,仅会指出需要测试产品的哪些要素、需要达到的质量目标、需要使用的测试方法等。这里要说明的是对于每一个应用软件系统,非功能特性的质量需求都是存在的,但是不同的项目类型对各个非功能特性的要求是不一样的,这个需要根据具体的项目、具体需求和不同产品应用的特点进行分析。外部大型复杂网络应用系统,比如电子商务,网上银行,视频网站(腾讯,优酷)等,除了有复杂的系统的功能测试需求外,在系统的性能,安全性,兼容性,容错性,可靠性等都有很高的要求。

2024-07-04 08:00:00 745 1

原创 【软件测试】软件测试的基本概念

严谨的来说:当且仅当规格说明是存在的并且正确,程序运行结果与规格说明之间是不匹配的就称为一个bug。当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。bug的定义每个公司都不一致,在定义级别之前需要查看公司规范。Blocker(崩溃):出现了阻碍开发或测试工作的问题,造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。

2024-06-30 08:00:00 955

原创 【软件测试】开发模型和测试模型

瀑布模型将软件生命周期划分:需求分析,计划、、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序。瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。

2024-06-21 08:00:00 861

原创 【软件测试】软件测试入门

最常见的理解是:软件测试就是找BUG,发现软件的问题。考试考完以后对答案——测试我们的答案的正确性。下载完一个软件后打开运行——测试这个软件能否正确运行。软件测试就是验证软件产品特性是否满足用户的需求。早期,人们更多的将测试看成是对软件产品“检验”,检查软件的每个功能是否运行正常。1983年,将软件测试定义为:软件测试就是一系列活动,这些活动是为了评估一个程序或者软件系统的特性或能力,并确定是否达到了其预期的效果。测试试图验证软件是“工作的”,也就是验证软件功能执行的正确性。

2024-06-17 20:09:03 1208

原创 【C++】STL空间配置器

容器,算法,迭代器, 空间配置器,适配器,仿函数。为各个容器进行高效的内存管理(内存的申请与回收)的。

2024-06-12 08:00:00 937

原创 【C++】深入理解decltype和decltype(auto)

decltype关键字是C++11新标准引入的关键字,它和关键字auto的功能类似,也可以自动推导出给定表达式的类型,但它和auto的语法有些不同,auto推导的表达式放在的右边,并作为auto所定义的变量的初始值,而decltype它的语法像是函数调用,但它不是函数调用而是运算符,和sizeof运算符类似,在编译期间获取他的类型,表达式expr不会被真正执行,因此不会产生汇编代码。decltype和auto用auto定义变量时必须提供初始值表达式,利用初始值表达式推导出类型并用它作为变量的初始值,使用。

2024-06-09 08:00:00 914

原创 【C++】 使用CRT 库检测内存泄漏

内存泄漏的检测工具有很多,大多数的内存泄漏检测工具都要我们手动安装才能使用,但是CRT(C 运行时库)库,是自带的,所以我们可以开箱即用,无需安装其他的内存泄漏检测工具。CRT检测内存泄漏原理内存分配要通过CRT在运行时实现,只要在分配内存和释放内存时分别做好记录,程序结束时对比分配内存和释放内存的记录就可以确定是不是有内存泄漏。

2024-06-07 08:00:00 693

原创 【CMake】CMake入门(五)打包安装程序 使用CMake管理库 打包调试版和发行版

本篇文章不是新手入门教学文章,主要是记录笔者个人的学习笔记。

2024-06-03 08:00:00 1095

原创 【CMake】CMake入门(四)生成器表达式 安装与测试 系统特性检测 自定义命令以及输出文件

CTest是CMake的测试工具,它可以自动化运行单元测试,收集测试结果并生成报告。使用方式根目录加。使用add_test添加测试。使用添加测试的属性# 用法 关键字 测试名称 关键字 执行的命令 参数# 示例# 用法 测试名称 关键字 属性 值# 示例这里PROPERTIES可以设置的参数有很多,这里设置的表示以正则表达式进行匹配结果。在Linux中,有许多的工具命令,例如lsmvmkdir等。

2024-05-31 08:00:00 1067

原创 【CMake】CMake入门(二)流程控制 if while foreach 数学表达式 函数定义

在cmake中我们也可以定义函数,cmake 提供了function()# 用法<commands>...name函数名arg参数# 示例func(1 2)# 结果-- 1-- 2在CMake中对于一个函数的参数,可以传递多于该函数要求的参数个数,但是不能少于。ARGC传入该函数的参数个数。ARGV传入该函数的参数形成的列表ARGN未命名的参数形成的列表访问ARGV列表中对应下标中的元素# 示例# 结果-- arg1=1-- arg2=2-- ARGC=5。

2024-05-28 08:00:00 945

原创 【CMake】CMake入门(三)常见的cmake脚本指令 日志输出 CMake内置的变量

如果一个项目里边的源文件很多,在编写CMakeLists.txt文件的时候不可能将项目目录的各个文件一一罗列出来,这样太麻烦也不现实。中的信息写入到头文件中,再编译到so库文件或者可执行程序中,这样,就可以通过提供库文件的接口或者可执行程序的打印中得到这些值了。文件复制为输出文件,并把其中的变量引用替换为CMakeLists.txt中定义的变量,如果变量未定义,则替换为空串。输入文件默认路径为CMakeLists.txt所在的路径,输出文件的路径默认为cmake生成文件所在的路径。为当前项目添加子目录。

2024-05-23 08:00:00 650

原创 【CMake】CMake入门(一)CMake介绍 常见的cmake命令行命令 变量的定义 预定义宏

CMake变量的底层原理CMake中的变量本质上都是字符串,即使存储的是数字或者布尔值,它们在内部都是以字符串的形式表示的。变量的作用域和生命周期,在CMake中,变量的作用域可以是全局的,也可以是局部的,这取决于你在哪里设置它们。全局变量:在CMakeLists.txt的顶层设置的变量。它们在整个项目的所有目录中都是可见的。局部变量:在函数或宏内部设置的变量。它们只在该函数或宏内部可见。变量解析和引用, 在CMake中,通过的语法来引用变量。

2024-05-20 08:00:00 1118

转载 【Qt】 Qt6 MySQL驱动手动编译

找到Qt安装文件夹走以下路径:Qt安装文件夹\Qt\6.5.0\msvc2019_64\bin。找到Qt安装文件夹走以下路径:Qt安装文件夹\Qt\6.5.0\mingw_64\bin。首先我们需要下载MySQL驱动的源码。首先第一步还是处理源码,不过我们下载的源码并不是Visual Studio项目,我们得把下载的源码转换成Visual Studio的项目。首先确定你用的编译器是哪个,是mingw还是msvc(Qt Creater用的是mingw编译器,Visual Studio用的是msvc编译器)。

2024-05-05 18:59:03 209

原创 【Qt】设置QT标准对话框为中文字体

所以我们需要使用Qt官方提供的翻译文件来将这些英文翻译为中文。在Qt中我们使用的标准对话框都是英文,例如下面的。最后再次执行程序弹出的就是中文对话框了!,但是实际中我们需要构建的是中文对话框。版本这个文件的存放路径也不一样。中进行管理,然后再次执行。如果还是不行的话,可以将。的安装目录中的,不同的。版本以上使用下面的代码。版本以下使用下面的代码。这个文件是存放在你的。

2024-04-19 17:57:54 856

转载 【MySQL】事务的写写并发

行锁,就是针对数据表中行记录的锁。比如事务A更新了一行,而这时候事务B也要更新同一行,则必须等待事务A的操作完成之后才能进行更新行锁是锁住单个记录的锁,防止其他事务对其update、delete的操作,在RR和RC隔离级别中都支持。行锁是通过锁住索引来实现的在多个事务并发更新数据的时候,都是要在行级别加独占锁的,这就是行锁。

2024-04-08 19:12:33 60

原创 【Git】git status中文文件名编码问题解决

在默认配置下,查看文件状态,中文文件名在工作区状态输出,中文名不能正确显示,而是显示为八进制的字符编码。,就可以解决中文文件名称在这些Git命令输出中的显示问题。通过将git配置变量。

2024-03-29 09:00:00 232 1

原创 【C++】STL 标准模板库

STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。

2024-03-27 10:55:44 563 2

转载 【MySQL】解决visual studio 中使用mysql数据库出现乱码问题

在windows下使用读写mysql数据库时,会遇到碰到乱码的问题,这是因为mysql内部使用的编码是utf8,而中使用的是gbk。

2024-03-25 20:18:40 104

原创 【Qt】Qt代码格式化配置

【代码】【Qt】Qt代码格式化配置。

2024-03-19 21:57:52 395

原创 【编程小记】在Windows下使用C/C++代码判断一个文件是否被其他进程占用

参数参数名描述lpFileName要创建或打开的文件的名称。以何种方式打开文件,读,写,读写文件的共享模式,0表示以独占模式打开文件。一个指针,与文件安全有关。一般情况下设置为NULL,表示此函数返回的句柄不能被子进程继承,并且返回的句柄关联的文件获得默认安全描述符。要对存在或不存在的文件执行的操作。一般设置为,表示只有存在文件才打开,文件不存在,则该函数将调用失败,记录错误。一般情况下直接设置为。当创建文件时以什么为模板进行创建文件。一般不使用,我们设置为NULL。返回值。

2024-03-06 21:19:54 741 2

原创 【MySQL】使用C语言连接数据

对象中保存着一行数据,这一行数据中可能包含多个字符串,对应就是这行数据中的多个列信息,因此MYSQL_ROW本质就是。建立好链接之后,获取英文字符是没有问题,但是如果是获取中文则是乱码,因为MySQL默认连接的编码格式采用。而对数据库中的数据进行查询操作时,除了需要知道有没有成功,还需要获取查询结果。编译运行我们的代码,发现确实向表中新插入了两条数据,并且数据没有乱码。当我们对数据库中的数据进行增删改操作时,我们只关心操作有没有成功。为了确保我们能够正常的将库引入进我们的代码中,我们可以先使用。

2024-02-20 08:30:00 1508 8

原创 【MySQL】用户管理

由于我们创建的这个用户可以从任意地方登录,因此如果你在Windows下也安装了MySQL,那么就可以在Windows的cmd窗口进行远程登录。上面的三个字段也是最重要的字段,所以以后我们进行查看用户相关的信息时,为了避免刷屏可以使用部分字段进行显示。需要注意的是,MySQL中可以存在同名的用户,只要这些同名用户对应的登录主机不同即可,因为。如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户。下的表,发现普通用户只能看到经过授权的表,或者数据库。表中存储的就是MySQL中用户相关的信息。

2024-02-16 08:30:00 1333 16

原创 【MySQL】视图

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。下面用员工表和部门表作为测试表,员工表中的ename代表的是员工的姓名,deptno代表的是员工所在部门的部门号。如下:部门表中的dname代表的是部门名,deptno代表的是部门的部门号。

2024-02-07 08:30:00 990 4

原创 【MySQL】深入理解隔离性

如果修改一下SQL的执行顺序,在两个终端各自启动一个事务后,直接先让左终端中的事务对表中的信息进行修改并提交,然后再让右终端中的事务进行查看,这时右终端中的事务就直接看到了修改后的数据。查询时应该进行当前读还是快照读,则是由隔离级别决定的,在读未提交和串行化隔离级别下,进行的都是当前读,而在读提交和可重复读隔离级别下,既可能进行当前读也可能进行快照读。RR级别下快照读只会创建一次Read View,所以RR级别是可重复读的,而RC级别下每次快照读都会创建新的Read View,所以RC级别是不可重复读的。

2024-02-03 08:30:00 931 4

原创 【MySQL】事务管理

事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。MySQL提供一种机制,保证我们达到这样的效果。事务还规定不同的客户端看到的数据是不相同的。事务主要用于处理操作量大,复杂度高的数据。比如转账就涉及多条SQL语句,包括查询余额(select)、在当前账户上减去指定金额(update)、在指定账户上加上对应金额(update)等,将这多条SQL语句打包便构成了一个事务。

2024-01-31 09:00:00 1373 14

原创 【MySQL】索引

数据库表中存储的数据都是以记录为单位的(也就是一行数据),如果在查询数据时直接一条条遍历表中的数据记录,那么查询的时间复杂度将会是ONO ( N )ON。索引的价值在于提高海量数据的检索速度,只要执行了正确的创建索引的操作,查询速度就可能提高成百上千倍。当一张表创建索引后,在数据库底层就会为表中的数据记录构建特定的数据结构,后续在查询表中数据时就能通过查询该数据结构快速定位到目标数据。索引虽然提高了数据的查询速度,但在一定程度上也会降低数据增删改的效率。

2024-01-28 08:30:00 1216 10

原创 【MySQL】内外连接

表的连接分为内连和外连。

2024-01-25 08:30:00 1757 12

原创 【MySQL】 复合查询

通过下面的练习能够评估你的SQL查询的基本功。雇员信息表数据库文件部门编号(deptno),部门名称(dname),部门所在地点(loc)。等级(grade),此等级最低工资(losal),此等级最高工资(hisal)。1.1 查询工资高于500或岗位为MANAGER的员工,同时要求员工姓名的首字母为大写的J1.2 查询员工信息,按部门号升序而员工工资降序显示1.3 使用年薪进行降序排序1.4 显示工资最高的员工的名字和工作岗位我们发现这样的SQL是能够满足我们的要求的,但是这样写法有一些散乱,我们其实

2024-01-20 08:00:00 1104 10

原创 【MySQL】内置函数

strcmp函数用于逐字符按照ASCII码比较两个字符串的大小,两个字符串大小相等返回0,前者大返回1,后者大返回-1。:例如现有如下成绩表,要求以“恭喜XXX,你的语文是XX分,数学是XX分,英语是XX分!”的格式显示成绩表中的信息。:当有些时候我们发现数据库中的字符,有的乱码有的正常显示我们就可以通过这种方式进行排查是否是字符集出了问题。该函数的使用很简单,我们只要将我们想要拼接的字符串放进该函数中就行了,此外。: 对于多字节字符来说,不同编码中一个字符所占的字节个数是不同的,比如。

2024-01-17 08:00:00 1229 12

原创 【MySQL】聚合函数与分组查询

注意本题目要求的是数学成绩的个数,不是数学成绩的值,这意味着我们需要对相同的数学成绩的值进行先去重,然后再进行聚合统计,对于去重我们可以使用。:聚合函数用来计算一组数据的集合并返回单个值,通常用这些函数完成:个数的统计,某列数据的求和,某列数据的最大值,最小值,或者是平均值。不知刚才你注意到没,前面我们进行聚合统计时都是在对整张表进行聚合统计,但是有时我们想要对不同的情况进行分别统计。函数是没有办法达到我们想要的目的的,但是如果我们先对班级中的男女生进行分组,然后又分别进行聚合统计,使用。

2024-01-12 09:00:00 2495 22

原创 【MySQL】表的增删改查

表的增删查改简称CRUD:Create(新增),Retrieve(查找),Update(修改),Delete(删除)。CRUD的操作对象是对表当中的数据,是典型的DML语句(Data Manipulation Language 数据操作语言)。

2024-01-08 09:00:00 1259 18

原创 【MySQL】表的约束

但是最好创建表时就指定好主键,不然在表的使用过程中,当我们想要为某一列设置主键时但是这一列已经出现了重复数据了,这时我们设置主键就会失败,除非将重复的数据给删除掉然后再添加主键。向表中插入第一条记录时如果没有指明自增长字段的值,那么自增长字段的值默认将会从1开始,后续向表中插入记录时如果也不指明自增长字段的值,那么自增长字段的值就会依次递增。查看表中插入的数据可以看到,表当中有重复的IP地址,也有重复的端口号,但是不会出现IP和端口均重复的,这就是复合主键的作用!

2023-12-26 10:00:00 1377 18

原创 【MySQL】MySQL的数据类型

而且出于效率考虑,这些值在MySQL内部实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,…该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;创建一个表,表当中包含用户id和用户性别gender,其中gender的类型可以指定为1位bit类型,因为性别只有男和女两种取值,使用1个比特位来表示用户的性别就可以节省空间。查看表中的内容,发现合法的数据被成功的插入了,非法的数据直接被拒绝插入,说明MySQL不会为我们的整形进行截断转换。

2023-12-22 10:00:00 1104 14

原创 【MySQL】表的操作

可以看到我这里当前的MySQL默认使用的是InnoDB存储引擎,当我建表时没有指定使用哪种存储引擎,那么就会默认使用InnoDB存储引擎。可以看到在新增列之前插入表中的两条记录对应的image_path值为NULL,因此新增列后可能还需要对原来插入的记录进行修改。在创建表之前我们要先有一个数据库,并且使用这个数据库,这里我们创建一个db1的数据库并使用。不是简单的修改,而是覆盖式的修改,所以如果我们还要保留注释的话就要再修改时加上。表示将该列新增到哪一列之后,如果想要将新增的列放到第一列,可以将。

2023-12-15 10:00:00 350 15

原创 【MySQL】MySQL库的操作

如果备份一个数据库时,没有带上。

2023-12-11 09:00:00 450 12

原创 【MySQL】MySQL数据库基础

是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

2023-12-05 10:00:00 438 17

原创 【Linux】I/O多路转接技术

前面我们学习的非阻塞IO,虽然能够在数据不就绪的时候处理其他事情,但是还是有一些不方便,而且每次都要为了一个文件描述符而进行等待,所以为了提高IO效率我们还要学习IO多路转接技术。

2023-12-01 10:00:00 255 19

C++ STL库源代码(SGI版本)

C++ STL库源代码(SGI版本)

2024-06-04

空空如也

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

TA关注的人

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