- 博客(72)
- 收藏
- 关注
原创 Docker安装(Windows版)
本文详细介绍了在Windows系统上安装Docker的两种模式(WSL 2和Hyper-V)及其差异,重点讲解了WSL 2模式的安装步骤。主要内容包括:两种模式的架构、性能、安全性对比;安装前的CPU虚拟化和Hyper-V配置;WSL 2子系统的安装方法;Docker Desktop的下载安装及验证;以及安装后的镜像加速和存储路径设置。文章提供了完整的图文指导,帮助用户在Windows环境下快速部署Docker,并针对不同使用场景给出了模式选择建议。
2026-01-09 16:47:53
2515
1
原创 RabbbitMQ入门:从Windows版本RabbitMQ安装到Spring AMQP实战(一)
本文介绍了RabbitMQ消息队列的安装配置与Spring AMQP集成应用。主要内容包括: RabbitMQ安装指南:详细说明了Erlang环境配置、RabbitMQ下载安装、管理界面启动步骤; Spring AMQP基础应用:演示了消息发送与接收的基本流程,包括配置RabbitMQ连接信息、使用RabbitTemplate发送消息、通过@RabbitListener注解实现消息监听; Work Queues模型应用:展示了如何利用多消费者模式提高消息处理效率,包含循环发送测试消息和实现多个消息监听器的代
2025-12-17 14:04:46
966
原创 Redis:从NoSQL到五大数据类型及基本命令
Redis学习笔记摘要 本文介绍了NoSQL数据库Redis的基础知识与应用。主要内容包括:1) NoSQL发展背景,从单机MySQL到分库分表再到Redis等NoSQL解决方案;2) Redis核心特性:高性能、多样数据类型、持久化等;3) 基本操作命令,如String类型的set/get/incr,List类型的lpush/rpop等;4) Redis单线程高性能原理,基于内存操作避免上下文切换;5) 实际应用场景如缓存、计数器、消息队列等。Redis作为主流NoSQL数据库,适用于大数据量、高并发的互
2025-11-22 11:24:03
716
原创 Git:基础命令+idea集成Git配置
本文记录了Git环境配置与基本使用教程。内容包括:1)开发环境配置(JDK17、MySQL8.0等);2)Git基础操作:初始化配置、仓库创建、工作区域划分、文件状态管理、提交回退、差异比较等;3)分支管理:创建/切换/合并分支、冲突解决;4)IDEA集成Git的配置步骤,包括远程仓库关联、分支操作等。文章提供了详细的命令行示例和操作截图,适合初学者快速掌握Git版本控制的核心功能。重点介绍了Git工作流程、分支策略以及IDEA中的Git可视化操作,帮助开发者规范版本管理实践。
2025-11-08 11:54:33
1101
原创 MyBatis
MyBatis是一个轻量级的半自动化ORM工具,需要手动编写SQL语句。与SpringBoot整合时,首先添加MyBatis启动器依赖,然后在配置文件中设置映射规则、日志等。Dao层接口需添加@Mapper注解,并编写对应的XML映射文件。MyBatisX插件可辅助开发,支持自动分页等功能。动态SQL参数可通过OGNL表达式获取。此外,还支持手动映射(如字段别名)、类型转换器、关联查询(一对一、一对多)及缓存机制(如一级缓存)等功能。N+1查询问题是需要关注的一个性能问题。
2025-08-10 17:10:39
1068
原创 Springboot和Vue初步前后端分离建立项目连接(解决前后端跨域问题)
这段代码指的是,给上述vue前端添加一个代理,但前端请求的url路径中,发现有"/api",就将这个"/api"匹配到下面定义target:“http://localhost:8080”,后面。并且,将"/api",替换成"/api/v1"但此时,启动启动器,前端得不到后端返回的数据,这是因为,浏览器默认的遵守同源协议,也就是一个域只能访问他自己域里的内容,不能跨域访问,从前端5000端口号向后端8080端口号发送请求接受请求,造成了跨域,因此数据不能正常传输,会报错。前端端口号配置 5000。
2025-08-09 11:03:38
815
原创 Vue 3快速入门:从零搭建前端项目
本文介绍了Vue 3前端开发的基础准备工作及项目构建流程。主要内容包括:1) 安装Node.js和pnpm包管理器的步骤;2) 使用pnpm创建Vite+Vue项目的方法;3) 项目基础配置(路径别名、路由设置等);4) 创建简单组件和路由的示例代码;5) Vue应用启动和访问流程的详细说明。文章通过图文结合的方式,详细讲解了从环境搭建到项目初始化的完整过程,重点阐述了挂载点概念、路由配置以及组件开发的基本方法,为Vue 3初学者提供了清晰的入门指导。
2025-08-08 19:48:53
1297
原创 Spring、Spring MVC、MyBatis 和 Spring Boot的关系
一个完整的Springboot整合的ssm项目中,可以把view层(也就是前端页面那些),controller层的各种@xxxMapping、@Controller ,以及model(也就是数据模型)层,认为是SpringMVC。@Repository(数据访问层)),还有使用的依赖注入的 @Autowired这些使用的地方就可以说是属于Sping,因为这些是实现的spring的核心功能。而在service层,dao层写的各种@Component以及他的变种(比如@Service(业务层)
2025-08-07 22:36:12
1266
原创 SpringBoot发展历程与核心功能解析
本文概述了Java Web开发的技术演进历程,从早期的Servlet/JSP到SSH框架(Struts+Spring+Hibernate),再到SSM框架(SpringMVC+Spring+MyBatis)。重点介绍了SpringBoot作为快速开发脚手架的特点,以及Spring框架的两大核心功能:控制反转(IOC)和依赖注入(DI)。详细讲解了依赖注入的三种方式(字段注入、setter注入、构造器注入)和相关注解(@Autowired、@Resource),并比较了@Component及其衍生注解的区别。
2025-08-04 21:41:40
1180
原创 JavaWeb前瞻—JDBC
本文介绍了Java数据库连接(JDBC)的三种基本操作方式:1)使用Statement进行查询操作,存在SQL注入风险;2)使用PreparedStatement进行安全查询,通过参数化查询避免SQL注入;3)使用PreparedStatement进行写操作(增删改)。每种方式都展示了代码示例,包括建立连接、执行SQL、处理结果集或更新计数等关键步骤,并强调了资源关闭的重要性。文章还提到了使用try-with-resources语法自动关闭连接。
2025-07-30 11:43:19
216
原创 冰人集团数据库设计案例(含题目—答案)
本文展示了针对员工信息数据库的25个SQL查询语句和8个数据操作任务。查询内容包括:基本员工信息筛选、部门/性别/入职时间等条件查询、复合条件查询(如党员/籍贯)、模糊查询(姓名匹配)、工资计算与统计(实际工资、公积金)、以及数据排序和分组统计(平均工资、工龄等)。操作任务涉及员工记录的增删改操作,如添加新员工、批量工资调整等。这些查询涵盖了单表查询、多表连接、子查询、聚合函数等SQL核心功能,完整展示了员工信息管理系统的常见数据操作需求。
2025-07-30 11:41:15
623
原创 MySQL复习
blob 存大的二进制,大文件 ,比如大的视频,但现在很少往数据库存视频,还会严重影响数据库性能。定长,如下定长20,不够20自己补齐20位,性能高,找的时候好定位位置,比如性别,手机号。不建议使用(在dba的角度要用,在程序员角度不爱用 --不够灵活,难以调试)不建议使用(在dba的角度要用,在程序员角度不爱用 --不够灵活,难以调试)比如一个班级删除的时候,学生表里的是这个班级的学生的学生信息一并删除。写操作,增insert,删delete,改update。非结构化数据:音频,视频。
2025-07-28 20:17:10
1208
原创 JavaWeb_原始项目初识(一)
admin/student/list,if判断用户输入地址是不是/admin/student//list,如果是,创建StudentServiceImpl对象,调用findall方法,将获取到的数据存到List中,然后将名为students的集合存放到request请求域中,然后request调用请求转发方法将students转发到/WEB-INF/jsp/student/list.jsp。用于在应用程序启动时创建一定数量的数据库连接,并将这些连接保存在一个"池"中,供应用程序随时取用。
2025-07-24 20:56:18
705
原创 JavaWeb_Servlet复习
使用频率最高,除了post之外的全部是get请求,比如:浏览器地址栏,超链接,link标记,script请求,image请求,iframe。应用层 ->表示层->会话层->传输层->网络层->链路层->物理层。性能要弱于C/S架构,百ms级。接收http请求,并进行响应的网络组件,使用java语言编写。庞大的类库,社区活跃。2.升级是在服务端升级,用户无感知,移动办公方便。1.java语言,严谨,易读,健壮,简单。2.升级、维护、安装、部署都不方便。asp,php,漏洞多,民用多企业少。
2025-07-23 19:14:37
538
原创 前端_Javascript复习
let,const控制台输出:console.log// 定义变量使用let let a = 10;console.log(a) // const是常量const b = 10 // b++ 报异常// 函数return a+b;
2025-07-22 19:17:29
853
原创 前端_CSS复习
1.绝对定位:最近的祖先元素中,非static定义的元素。text-decoration,文字周围各种线,比如underline下划线。1.4.简写的十六进制表示法 如果每两位相同则可简写为一位#000。px:像素 是逻辑像素 不同电脑1px不一定一样大。一个html页面的设计编写过程,就是布局的过程。2.相对定位:以其自身未偏移前的位置为参照物。在css中,将任意一个元素,都视作一个盒子。逻辑像素:类似缩放,把几个物理像素合成一个。font-size: 30px 字号。
2025-07-22 19:15:48
1508
原创 前端_HTML基础复习
input type="text"单行文本框 readonly value="admin"只读 amdin。任意一个标记都可以有id属性,用于唯一的标识一个标记。ul 无序列表 unorderd list。不独占一行,连续排列,从左向右排列。标记可以拥有属性,不同的标记拥有不同的属性。不同的标记,行为不同,样式不同。1.1h1~h6 1-6级标题。超文本:图片,音频,视频,脚本。块标记独占一行,从上往下排列。1.2 p 段落标记。disabled 禁用。1.3 hr 水平线。
2025-07-17 16:59:08
477
原创 Javase总体回顾
3.如果一个类没有显式定义构造函数,会自动创建一个公有的无参的构造函数,如果显式指定了构造函数,就不会再自动创建无参构造函数。比较运算符 : > , <, >= , <=, == ,!5.接口中的默认方法可被继承到实现类中,在默认方法中可以使用this关键字,由实现类来调用。索引(下标),整数,包括0,不能是负数,不能是小数,不能超。static成员即类成员,属于类的,不属于某个对象,通过类名称直接访问。赋值运算符: = ,+=, -=, *= , /=
2025-07-16 21:24:27
821
原创 JavaWeb-03Cookie_Session
JSP是JavaWeb服务器端的动态资源。它与HTML页面的作用是相同的,显示数据和获取数据。Cookie翻译成中文是小甜点,小饼干的意思。在HTTP中它表示服务器送给客户端浏览器的小甜点。Cookie是在浏览器访问Web服务器的某个资源时,由Web服务器在HTTP响应消息头中附带传送给浏览器的一小段数据。一旦Web浏览器保存了某个Cookie,那么它在以后每次访问该Web服务器时,都应在HTTP请求头中将这个Cookie回传给Web服务器。一个Cookie主要由标识该信息的名称(name)和值(
2025-06-27 14:25:13
796
原创 JavaWeb-02Servlet
摘要: Servlet是JavaWeb三大组件之一,用于处理客户端请求并响应。入门案例展示了如何通过实现Servlet接口编写类,并在web.xml中配置映射关系。Servlet的生命周期方法(init、service、destroy)由容器调用,需注意线程安全问题,避免使用成员变量。常见错误如500内部服务器错误需检查代码和配置。Servlet支持三种实现方式,本文重点演示了实现接口的方式,并强调其单例特性及线程安全注意事项。 (字数:150)
2025-06-27 10:08:36
963
原创 JavaWeb--01Web开发基础
即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。我们要学习的就是这个两个格式。客户端发送给服务器的格式叫“请求协议”;服务器发送给客户端的格式叫“响应协议”。HTTP协议的特点:支持客户端(浏览器)/服务器模式。简单快速:客户端只向服务器发送请求方法和路径,服务器即可响应数据,因而通信速度很快。请求方法常用的有GETPOST等。HTTP。
2025-06-19 08:42:29
762
原创 Javase易混点专项复习03_成员变量-局部变量,形式参数-实际参数
组成部分:1.属性(成员变量):这一类事物有啥a.定义位置:类中方法外b.作用范围:作用于当前类c.定义格式: 数据类型 变量名d.默认值:整数:0小数:0.0字符:'\u0000'布尔:false引用:null2.行为(成员方法):这一类事物都能干啥//属性-> 成员变量int age;//行为 -> 成员方法System.out.println("人要干饭");System.out.println("人要喝水");
2025-05-24 16:52:25
492
原创 Javase易混点专项复习02_static关键字
本文介绍了Java中static关键字的使用场景和特点。static可修饰成员变量和方法,使其成为类的静态成员。静态成员属于类而非对象,随类加载而存在,所有对象共享同一份静态成员。文章通过代码示例展示了静态属性与非静态属性的区别,并详细分析了静态方法的访问规则。此外,还讲解了动态代码块和静态代码块的概念、执行时机和作用,包括它们在对象创建过程中的执行顺序。最后通过内存图对比了实例属性和静态属性的存储方式,帮助理解static关键字的底层机制。
2025-05-23 19:40:06
644
原创 Javase易混点专项复习01_this关键字、super关键字
本文介绍了Java中this和super关键字的功能与用法。this关键字主要用于表示当前对象,区分成员变量与局部变量同名情况,以及在构造方法中调用本类其他构造方法。super关键字则用于表示父类对象,在子类中访问父类属性和方法,以及在子类构造方法中调用父类构造方法。通过代码示例展示了两个关键字的具体应用场景,并解释了继承关系中对象创建的流程。全文重点讲解了this和super在面向对象编程中的核心作用,帮助理解Java中对象创建、方法调用和继承机制的工作原理。
2025-05-23 16:48:32
598
原创 07算法学习_Km44、 开发商购买土地
前缀和的思路来求解,先将 行方向,和 列方向的和求出来,这样可以方便知道 划分的两个区间的和。如:vec[1][0],vec[1][1]…vec[1][9]累加和都存到nums[1]中。然后利用前缀和的思路,分别对这两个一维数组进行遍历求最小值。将二维数组每一行的元素存到对应一维数组相同下标的元素中,然后再建一个新数组,同理把每一列的累加和存到新数组里‘在每次行遍历和列遍历时就进行差值比较,不需要写两次循环。首先:先将该矩阵存到二维数组里。然后建立一个新数组-一维数组。
2025-05-22 15:16:37
335
原创 06算法学习_58. 区间和
看本题,我们最直观的想法就是给一个区间,然后 把这个区间的和都累加一遍不就得了,是一道简单不能再简单的题目。代码一提交,发现超时了。我们想统计,在vec数组上 下标 2 到下标 5 之间的累加和,就用 p[5] - p[1] 就可以了。我们先做累加,即 p[i] 表示 下标 0 到 i 的 vec[i] 累加 之和。前缀和的思想是重复利用计算过的子数组之和,从而降低区间查询需要累加计算的次数。例如,我们要统计 vec[i] 这个数组上的区间和。前缀和 在涉及计算区间和的问题时非常有用!
2025-05-22 15:08:01
559
原创 03算法学习_977、有序数组的平方
如果A[i] * A[i] >= A[j] * A[j] 那么result[k–] = A[i] * A[i];如果A[i] * A[i] < A[j] * A[j] 那么result[k–] = A[j] * A[j];定义一个新数组result,和A数组一样的大小,让k指向result数组终止位置。那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间。此时可以考虑双指针法了,i指向起始位置,j指向终止位置。最直观的想法,莫过于:每个数平方之后,排个序,双指针(快慢指针法)
2025-05-16 14:45:34
588
原创 02算法学习_27、移除元素题解
力扣题目链接: 27、移除元素个人代码:暴力解法双指针(快慢指针法)学习思路:要知道数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。暴力的解法就是两层for循环,一个for循环遍历数组元素 ,第二个for循环更新数组。该解法是遇到需要删除元素时,再用一个for循环将该值后面的元素依次向前覆盖移除元素第二种写法:双指针法(快慢指针)题解关键点:通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。定义快慢指针过程:快指针慢指针都从0开始,快指针依次向后
2025-05-16 09:46:43
375
原创 01算法学习_704、二分查找题解
力扣题目链接: 704、二分查找个人代码:学习思路:这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大家看到题目描述满足如上条件的时候,可要想一想是不是可以用二分法了。根据查找区间的定义来做边界处理。第一种写法,我们定义 target 是在一个在左闭右闭的区间里,也就是**[left, right]** (这个很重要非常重要)。因为定义target在[left, right]区间,所以有
2025-05-14 20:58:05
464
原创 MySQL学习D3SQL概述,DML,约束,DQL,DCL
SQL:Structured Query Language(结构化查询语言),客户端使用SQL来操作数据库,可以应用到所有关系型数据库中。SQL语言标准由ISO(国际标准化组织)发布,ISO定义了很多SQL标准(例如SQL99)对RDBMS进行统一的操作,相同的语句可以操作Oracle,MySQL。各个数据库厂商有自己的标准,类似于方言,MySQL中的limit。SQL语句可以在单行或多行书写,以分号结尾;可使用空格和缩进来增强语句的可读性;MySQL不区分大小写,建议大写。
2025-04-21 20:12:18
541
原创 MySQL学习-D2-MySQL5.7下载安装及配置
MySQL Server 5.7运行需要依赖MS C++ 2013的库,安装之前有必要安装MS C++ 2013,如果你的电脑之前安装过MS C++ 2013,那么会直接进入下一步。为了保险起见,我们还是要检查一下,确保MySQL 5.7已经完全卸载,从而不会对下次安装产生影响。位置:E:\IT\Tools\MySQL\mysql-8.0.39-winx64\my.ini。目前的MySQL对中文没有很好的支持,通过以下命令可以查看MySQL的字符集。Port(端口)默认3306就可以,也可以写别的值,
2025-03-30 17:11:12
1288
原创 MySQL学习-D1为什么学习MySQL
用来存储和管理数据的仓库。可存储大量数据;方便检索;保持数据的一致性、完整性;安全、可共享;通过组合分析,可产生新数据。
2025-03-30 16:58:07
654
原创 Javase学习复习D25[反射_注解]
1.概述:Junit是一个单元测试框架,可以代替main方法去执行其他的方法2.作用:可以单独执行一个方法,测试该方法是否能跑通3.注意:Junit是第三方工具,所以使用之前需要导入jar包1.反射概述:解剖class对象的一个技术2.问题:能解剖class对象的啥呢?a.解剖出成员变量 : 赋值b.解剖出成员方法: 调用c.解剖出构造方法: new对象3.用反射的好处:让代码变的更通用,更灵活4.怎么学反射:a.将反射看成是一套API来学。
2025-03-26 15:32:39
1090
原创 Javase学习复习D24[jdk新特性]
1.面向对象思想:是Java的核心编程思想强调的是找对象,帮我们做事儿比如:去北京 -> 强调的是怎么去,火车,高铁,飞机,汽车,自行车,腿儿2.jdk8开始又了个新的思想:函数式编程思想:强调的是结果,不强调过程比如:去北京 -> 只强调去了还是没去3.Lambda表达式:a.定义格式:()->{}b.各部分解释:() : 重写方法的参数位置-> : 将参数传递到方法体中{} : 重写方法的方法体@OverrideSystem.out.println("我执行了");
2025-03-26 15:29:45
956
原创 Javase学习复习D23[网络编程&正则表达式&设计模式]
正则表达式-预定义字符语法示例:1. "." : 匹配任何字符。(重点) 不能加[]2. "\\d":任何数字[0-9]的简写;(重点)3. "\\D":任何非数字[^0-9]的简写;4. "\\s": 空白字符:[ \t\n\x0B\f\r] 的简写5. "\\S": 非空白字符:[^\s] 的简写6. "\\w":单词字符:[a-zA-Z_0-9]的简写(重点)7. "\\W":非单词字符:[^\w]//预定义字符//1.验证字符串是否是三位数字。
2025-03-26 15:26:05
653
原创 Javase学习复习D22[IO流]
1.作用:读写对象2.两个对象:aObjectOutputStream -> 序列化流 -> 写对象bObjectInputStream -> 反序列化流 -> 读对象3.注意:我们将对象序列化到文件中,我们打开文件看不懂,这就对了,很多时候,我们操作的数据不能随便让别人看懂,不然别人就随意改动了,我们只需要将这些看不懂的内容成功读回来即可。
2025-03-26 15:18:39
872
原创 Javase学习复习D21[IO流]
1.单词:Output:输出Input:输入write:写数据read:读数据2.IO流:将一个设备上的数据传输到另外一个设备上,称之为IO流技术3.为啥要学IO流呢?之前学了一个集合以及数组,可以保存数据,但是这两个都是临时存储(代码运行完毕,集合和数组会从内存中消失,从而数据就不存在了),所以集合和数组达不到永久保存的目的,我们希望咱们的数据永久保存起来,所以我们就可以将数据保存到硬盘上,此时我们就可以随时想拿到硬盘上的数据就随时拿。
2025-03-26 15:14:51
562
原创 Javase学习复习D20[集合]
1.概述:是双列集合的顶级接口2.元素特点:元素都是由key(键),value(值)组成 -> 键值对1.概述:HashMap是Map的实现类2.特点:a.key唯一,value可重复 -> 如果key重复了,会发生value覆盖b.无序c.无索引d.线程不安全e.可以存null键null值3.数据结构:哈希表4.方法:V put(K key, V value) -> 添加元素,返回的是。
2025-03-26 15:10:34
841
【数据库设计】冰人集团员工管理系统:基于MySQL 8.0的数据库结构与查询操作详解
2025-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅