自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL数据库多表设计(含有外键---Foreign-Key、一对多、一对一、多对多、案例练习)

如果在业务系统当中,对用户的基本信息查询频率特别的高,但是对于用户的身份信息查询频率很低,此时出于提高查询效率的考虑,我就可以将这张大表拆分成两张小表,第一张表存放的是用户的基本信息,而第二张表存放的就是用户的身份信息。一对一关系表在实际开发中应用起来比较简单,通常是用来做单表的拆分,也就是将一张大表拆分成两张小表,将大表中的一些基础字段放在一张表当中,将其他的字段放在另外一张表当中,以此来提高数据的操作效率。当我们添加了外键之后,再删除ID为1的部门,就会发现,此时数据库报错了,不允许删除。

2024-07-23 16:17:51 796

原创 MySQL数据库操作-DQL(基本介绍、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)

DQL英文全称是Data Query Language(数据查询语言),用来查询数据库表中的记录。查询关键字:SELECT查询操作是所有SQL语句当中最为常见,也是最为重要的操作。在一个正常的业务系统中,查询操作的使用频次是要远高于增删改操作的。当我们打开某个网站或APP所看到的展示信息,都是通过从数据库中查询得到的,而在这个查询过程中,还会涉及到条件、排序、分页等操作。

2024-07-23 16:06:32 978

原创 MySQL的DML操作语句(增加、删除和修改)

2024-07-23 15:48:31 328

原创 MySQL数据库设计-DDL(项目开发流程、数据库操作的基本语句、图形化工具)

前面我们讲解了DDL中关于数据库操作的SQL语句,在我们编写这些SQL时,都是在命令行当中完成的。没有任何代码提示。(全靠记忆,容易敲错字母造成执行报错)操作繁琐,影响开发效率。(所有的功能操作都是通过SQL语句来完成的)编写过的SQL代码无法保存。在项目开发当中,通常为了提高开发效率,都会借助于现成的图形化管理工具来操作数据库。

2024-07-18 11:21:19 858

原创 MySQL概述(MySQL安装、MySQL数据模型、MySQL简介)

官网:https://dev.mysql.com/SQL:结构化查询语言。一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。在学习具体的SQL语句之前,先来了解一下SQL语言的语法。

2024-07-18 11:12:09 860

原创 HTTP---请求响应(Servlet、三层架构、分层解耦)

在我们进行程序设计以及程序开发时,尽可能让每一个接口、类、方法的职责更单一些(单一职责原则)。单一职责原则:一个类或一个方法,就只做一件事情,只管一块功能。这样就可以让类、接口、方法的复杂度更低,可读性更强,扩展性更好,也更利用后期的维护。我们之前开发的程序呢,并不满足单一职责原则。下面我们来分析下之前的程序:数据访问:负责业务数据的维护操作,包括增、删、改、查等操作。逻辑处理:负责业务逻辑处理的代码。请求处理、响应数据:负责,接收页面的请求,给页面响应数据。Controller:控制层。

2024-07-18 11:01:09 647

原创 HTTP的状态码大类、常见的响应状态码、状态码大全

【代码】HTTP的状态码大类、常见的响应状态码、状态码大全。

2024-07-17 17:58:56 232

原创 JavaWeb入门程序解析(Spring官方骨架、配置起步依赖、SpringBoot父工程、内嵌Tomcat)

举例:当我们开发中需要使用redis数据库时,只需要在SpringBoot项目中,引入:spring-boot-starter-redis ,即可导入redis开发所需要的依赖。原因呢,是因为在我们的SpringBoot中,引入了web运行环境(也就是引入spring-boot-starter-web起步依赖),其内部已经集成了内置的Tomcat服务器。关于web开发的基础知识,我们可以告一段落了。在我们之前开发的SpringBoot入门案例中,我们通过maven引入的依赖,是没有指定具体的依赖版本号的。

2024-07-17 17:57:13 666

原创 JavaWeb服务器-Tomcat(Tomcat概述、Tomcat的下载、安装与卸载、启动与关闭、常见的问题)

Tomcat服务器软件是一个免费的开源的web应用服务器。是Apache软件基金会的一个核心项目。由Apache,Sun和其他一些公司及个人共同开发而成。由于Tomcat只支持Servlet/JSP少量JavaEE规范,所以是一个开源免费的轻量级Web服务器。JavaEE规范: JavaEE => Java Enterprise Edition(Java企业版)avaEE规范就是指Java企业级开发的技术规范总和。

2024-07-17 17:49:15 1021

原创 HTTP-响应协议(响应状态码、HTTP-协议解析)

响应行响应头响应体响应行(以上图中红色部分):响应数据的第一行。响应行由协议及版本响应状态码状态码描述组成协议/版本:HTTP/1.1响应状态码:200状态码描述:OK响应头(以上图中黄色部分):响应数据的第二行开始。格式为key:value形式http是个无状态的协议,所以可以在请求头和响应头中设置一些信息和想要执行的动作,这样,对方在收到信息后,就可以知道你是谁,你想干什么Content-Type:表示该响应内容的类型,例如text/html,image/jpeg;

2024-07-12 11:31:34 963

原创 HTTP协议。(HTTP-概述和特点、HTTP-请求协议、HTTP-请求数据格式、浏览器访问服务器的几种方式)

HTTP协议又分为:请求协议和响应协议请求协议:浏览器将数据以请求格式发送到服务器请求行请求头请求体响应协议:服务器将数据以响应格式返回给浏览器响应行响应头响应体HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。http是互联网上应用最为广泛的一种网络协议http协议要求:浏览器在向服务器发送请求数据时,或是服务器在向浏览器发送响应数据时,都必须按照固定的格式进行数据传输。

2024-07-12 11:28:37 808

原创 SpringBootWeb快速入门(需求分析、开发步骤、Web分析)

在com.itheima这个包下创建一个子包controller然后在controller包下新建一个类:HelloControllerimport org} }} }} }} }

2024-07-12 11:22:49 418

原创 Spring的AOP进阶。(AOP的通知类型、通知顺序、切入点表达式和连接点。)

MyLog。

2024-07-08 11:51:50 1001

原创 Spring的AOP基础以及AOP的核心概念

什么是AOP?AOP英文全称:Aspect Oriented Programming(面向切面编程、面向方面编程),其实说白了,面向切面编程就是面向特定方法编程。那什么又是面向方法编程呢,为什么又需要面向方法编程呢?来我们举个例子做一个说明:比如,我们这里有一个项目,项目中开发了很多的业务功能。然而有一些业务功能执行效率比较低,执行耗时较长,我们需要针对于这些业务方法进行优化。那首先第一步就需要定位出执行耗时比较长的业务方法,再针对于业务方法再来进行优化。

2024-07-08 11:46:54 861

原创 Spring事务的进阶。@Transactional的rollbackFor和propagation属性。

@Transactional注解当中的第二个属性propagation,这个属性是用来配置事务的传播行为的。什么是事务的传播行为呢?就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制。例如:两个事务方法,一个A方法,一个B方法。在这两个方法上都添加了@Transactional注解,就代表这两个方法都具有事务,而在A方法当中又去调用了B方法。

2024-07-08 11:40:41 1125

原创 idea导入Maven项目

说明:如果没有Maven面板,选择 View => Appearance => Tool Window Bars。打开IDEA,选择右侧Maven面板,点击 + 号,选中对应项目的pom.xml文件,双击即可。找到要导入工程的pom.xml。

2024-07-05 10:09:31 250

原创 idea创建Maven项目

POM (Project Object Model) :指的是项目对象模型,用来描述当前的maven项目。3、填写模块名称,坐标信息,点击finish,创建完成。4、在Maven工程下,创建HelloWorld类。|— target (编译、打包生成文件存放目录)|— src (源代码目录和测试代码目录)2、创建模块,选择Maven,点击Next。

2024-07-05 10:06:44 345

原创 IDEA配置Maven环境

这里所设置的maven的环境信息,并未指定任何一个project,此时设置的信息就属于全局配置信息。上述配置的maven环境,只是针对于当前工程的,如果我们再创建一个project,又恢复成默认的配置了。Local repository :指定Maven的本地仓库的路径 (如果指定了settings.xml, 这个目录会自动读取出来, 可以不用手动指定)User settings file :指定当前Maven的settings.xml配置文件的存放路径。3、配置工程的编译版本为11。

2024-07-05 10:02:07 148

原创 Maven介绍、Maven模型、Maven仓库

Apache Maven是一个项目管理和构建工具,它基于项目对象模型(Project Object Model , 简称: POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。官网:https://maven.apache.org/方便的依赖管理统一的项目结构标准的项目构建流程。

2024-07-05 09:56:17 375

原创 JavaScript的基础语法。(书写语法、变量、数据类型和运算符)

书写语法会了,变量是一门编程语言比不可少的,所以接下来我们需要学习js中变量的声明,在js中,变量的声明和java中还是不同的。关键字来定义变量,它的用法类似于 var,但是所声明的变量,只在 let关键字所在的代码块内有效,且不允许重复声明。在js中,我们var声明的变量可以接受任何数据类型的值。虽然js是弱数据类型的语言,但是js中也存在数据类型,js中的数据类型分为 :原始类型 和 引用类型,具体有如下类型。在js中,绝大多数的运算规则和java中是保持一致的,但是js中的==和===是有区别的。

2024-07-04 19:52:06 380

原创 JavaScript基础-Js的引入方式

同样,js代码也是书写在html中的,那么html中如何引入js代码呢?**第二种方式:**外部脚本将, JS代码定义在外部 JS文件中,然后引入到 HTML页面中。接下来,我们通过VS Code来编写代码,演示html中2种引入js的方式。第一步:在VS Code中创建名为 10.JS-引入方式.html 的文件。**第一种方式:**内部脚本,将JS代码定义在HTML页面中。注意:demo.js中只有js代码,没有标签。

2024-07-04 19:41:34 318

原创 Html表单标签

那表单呢,在我们日常的上网的过程中,基本上每天都会遇到。比如,我们经常在访问网站时,出现的登录页面、注册页面、个人信息提交页面,其实都是一个一个的表单。当我们在这些表单中录入数据之后,一点击 “提交”,就会将表单中我们填写的数据采集到,并提交, 那其实这个数据呢,一般会提交到服务端,最终保存在数据库中 (后面的课程中会讲到)。那其实,上述的整个窗口是一个表单,而表单是一项一项的,这个我们称为表单项 或 表单元素。表单场景: 表单就是在网页中负责数据采集功能的,如:注册、登录的表单。

2024-07-04 19:38:24 275

原创 Html的表格标签

整合表格使用 table 标签包裹 , 其中的每一行数据都是一个 tr , 每一行中的每一个单元格都是一个 td , 而如果是表头单元格, 可以使用 th (具有加粗居中展示的效果)。**场景:**在网页中以表格(行、列)形式整齐展示数据,我们在一些管理类的系统中,会看到数据通常都是以表格的形式呈现出来的,比如:班级表、学生表、课程表、成绩表等等。 : 表格单元格(普通),可以包裹内容 , 如果是表头单元格,可以替换为 : 表格的行,可以包裹多个

2024-06-30 17:51:59 436

原创 Html的表单标签。

那表单呢,在我们日常的上网的过程中,基本上每天都会遇到。比如,我们经常在访问网站时,出现的登录页面、注册页面、个人信息提交页面,其实都是一个一个的表单。当我们在这些表单中录入数据之后,一点击 “提交”,就会将表单中我们填写的数据采集到,并提交, 那其实这个数据呢,一般会提交到服务端,最终保存在数据库中 (后面的课程中会讲到)。那其实,上述的整个窗口是一个表单,而表单是一项一项的,这个我们称为表单项 或 表单元素。表单场景: 表单就是在网页中负责数据采集功能的,如:注册、登录的表单。

2024-06-30 17:49:57 283

原创 Html的基础标签和样式。(Html实现新浪新闻的标题)

标签: 央视网属性:href: 指定资源访问的urltarget: 指定在何处打开资源链接_self: 默认值,在当前页面打开_blank: 在空白页面打开。

2024-06-30 17:40:05 226

原创 RabbitMQ消息转换器

显然,JDK序列化方式并不合适。我们希望消息体的体积更小、可读性更高,因此可以使用JSON方式来做序列化和反序列化。而在数据传输时,它会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象。只不过,默认情况下Spring采用的序列化方式是JDK序列化。上面还设置幂等性判断的部分视频没讲,如果不明白可以先使用下方的简单配置。注意,这里我们先不要给这个队列添加消费者,我们要查看消息体的格式。消息转换器中添加的messageId可以便于我们将来做幂等性判断。

2024-06-28 15:46:26 350

原创 RabbitMQ中java实现队列和交换机的声明

在之前我们都是基于RabbitMQ控制台来创建队列、交换机。但是在实际开发时,队列和交换机是程序员定义的,将来项目上线,又要交给运维去创建。那么程序员就需要把程序中运行的所有队列和交换机都写下来,交给运维。在这个过程中是很容易出现错误的。基于@Bean的方式声明队列和交换机比较麻烦,Spring还提供了基于注解方式来声明。因此推荐的做法是由程序启动时检查队列和交换机是否存在,如果不存在自动创建。注意声明的文件是Listener下的,在监听者位置声明。

2024-06-28 15:40:34 490 2

原创 RabbitMQ的Topic交换机

Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。

2024-06-28 15:36:54 383

原创 RabbitMQ的Direct交换机

描述下Direct交换机与Fanout交换机的差异?Fanout交换机将消息路由给每一个与之绑定的队列Direct交换机根据RoutingKey判断路由给哪个队列如果多个队列具有相同的RoutingKey,则与Fanout功能类似。

2024-06-27 10:09:17 556

原创 RabbitMQ的Fanout交换机

交换机的作用是什么?接收publisher发送的消息将消息按照规则路由到与之绑定的队列不能缓存消息,路由失败,消息丢失FanoutExchange的会将消息路由到每个绑定的队列。

2024-06-27 10:07:42 515

原创 RabbitMQ交换机类型

在之前的两个测试案例中,都没有交换机,生产者直接发送消息到队列。,因此如果没有任何队列与Exchange绑定,或者没有符合路由规则的队列,那么消息会丢失!

2024-06-27 09:56:31 509

原创 Maven高级的多环境配置与应用

这种方式最简单,但是有点"暴力",会把所有的测试都跳过,如果我们想更精细的控制哪些跳过哪些不跳过,就需要使用配置插件的方式。虽然已经能够实现不同环境的切换,但是每次切换都是需要手动修改,如何来实现在不改变代码的前提下完成环境的切换呢?excludes:哪些测试类不参与测试,即排除,针对skipTests为false来设置的。skipTests:如果为true,则跳过所有测试,如果为false,则不跳过测试。

2024-06-26 10:56:05 910

原创 Maven高级理解属性

在这一章节内容中,我们将学习两个内容,分别是属性中会继续解决分模块开发项目存在的问题,版本管理主要是认识下当前主流的版本定义方式。讲解内容之前,我们还是先来分析问题:前面我们已经在父工程中的dependencyManagement标签中对项目中所使用的jar包版本进行了统一的管理,但是如果在标签中有如下的内容:你会发现,如果我们现在想更新Spring的版本,你会发现我们依然需要更新多个jar包的版本,这样的话还是有可能出现漏改导致程序出问题,而且改起来也是比较麻烦。

2024-06-26 10:51:34 1028

原创 Maven高级的聚合和继承

项目少的话还好,但是如果项目多的话,一个个操作项目就容易出现漏掉或重复操作的问题,所以我们就想能不能抽取一个项目,把所有的项目管理起来,以后我们要想操作这些项目,只需要操作这一个项目,其他所有的项目都走一样的流程,这个不就很省事省力。这样我们就可以解决刚才提到的第一个问题,将子项目中的公共jar包抽取到父工程中进行统一添加依赖,这样做的可以简化配置,并且当父工程中所依赖的jar包版本发生变化,所有子项目中对应的jar包版本也会跟着更新。我们的项目已经从以前的单模块,变成了现在的多模块开发。

2024-06-26 10:47:10 964

原创 RabbitMQ的WorkQueues模型

多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量。

2024-06-25 11:29:03 1083

原创 Maven高级理解依赖管理

前面我们已经通过可选依赖实现了阻断maven_03_pojo的依赖传递,对于排除依赖,则指的是已经有依赖的事实,也就是说maven_02_ssm项目中已经通过依赖传递用到了maven_03_pojo,此时我们需要做的是将其进行排除,所以接下来需要修改maven_02_ssm的pom.xml。**说明:**在真实使用的过程中,maven_02_ssm中是需要用到maven_03_pojo的,我们这里只是用这个例子描述我们的需求。是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突。

2024-06-25 11:24:02 926

原创 Maven高级理解分模块开发

将抽取后的项目进行运行,测试之前的增删改查功能依然能够使用。所以对于项目的拆分,大致会有如下几个步骤:(1) 创建Maven模块(2) 书写模块代码分模块开发需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分。拆分方式可以按照功能拆也可以按照模块拆。(3)通过maven指令安装模块到本地仓库(install 指令)团队内部开发需要发布模块功能到团队内部可共享的仓库中(私服),私服我们后面会讲解。

2024-06-25 11:19:31 927

原创 RabbitMQ(同步调用、异步调用、技术选型)

消息发送者:投递消息的人,就是原来的调用方消息Broker/消息代理者:管理、暂存、转发消息,你可以把它理解成微信服务器消息接收者:接收和处理消息的人,就是原来的服务提供方在异步调用中,发送者不再直接同步调用接收者的业务接口,而是发送一条消息投递给消息Broker。然后接收者根据自己的需求从消息Broker那里订阅消息。每当发送方发送消息后,接受者都能获取消息并处理。这样,发送消息的人和接收消息的人就完全解耦了。

2024-06-23 10:58:05 752

原创 IK分词器---Elasticsearch(standard、ik_smart、ik_max_word、拓展词典---ik_max_word)

分词器的作用是什么?创建倒排索引时,对文档分词用户搜索时,对输入的内容分词IK分词器有几种模式?ik_smart:智能切分,粗粒度:最细切分,细粒度IK分词器如何拓展词条?如何停用词条?利用config目录的文件添加拓展词典和停用词典在词典中添加拓展词条或者停用词条。

2024-06-23 10:47:41 1271

原创 Elasticsearch基础概念(文档和字段、索引和映射、mysql与elasticsearch)

elasticsearch是面向**文档(Document)**存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为。因此,原本数据库中的一行数据就是ES中的一个JSON文档;而数据库中每行数据都包含很多列,这些列就转换为JSON文档中的。elasticsearch中有很多独有的概念,与mysql中略有差别,但也有相似之处。数据库的表会有约束信息,用来定义表的结构、字段的名称、类型等信息。,是索引中文档的字段约束信息,类似表的结构约束。因此,我们可以把索引当做是数据库中的表。

2024-06-23 10:32:38 805

空空如也

空空如也

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

TA关注的人

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