自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot整合mongodb的yml配置

database: article #指定使用的数据库(集合)host: 127.0.0.1 #指定MongoDB服务地址。port: 27017 #指定端口,默认就为27017。password: ‘123456’ #密码。username: admin #用户名。

2023-07-06 09:05:01 568

原创 十六.MySQL存储引擎

1.存储引擎概述和大多数的数据库不同,MySQL中有一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎。存储引擎就是存储数据,建立索引,更新查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的。所以存储引擎也可被称为表类型。Oracle, SQL Server等数据库只有一种存储引擎,MySQL提供了插件式的存储引擎架构。所以MySQL存在多种存储引擎,可以根据需要使用相应引擎,或者编写存储引擎。MySQL5.0支持的存储引擎包含: InnoDB, MyISAM, BDB, MEM

2022-05-30 15:06:14 171

原创 十五.MySQL体系结构

整个MySQL Server由以下组成Connection Pool: 连接池组件Management Services & Utillties: 管理服务和工具组件SQL Interface: SQL接口组件Parser: 查询分析器组件Optimizer: 优化器组件Caches & Buffers: 缓冲池组件Pluggable Storage Englines: 存储引擎File System: 文件系统(1).连接层最上层是一些客户端和连接服务,包含本地so.

2022-05-30 13:05:37 174

原创 十四.索引

1.索引概述MySQL官方对索引的定义为: 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的示意图所示:左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。为了加快Col2的查找,可以维护了一个右边所示的二叉查找树。每个节点分别包含了索引键

2022-05-30 11:53:38 304

原创 TypeScript

一.TypeScript介绍1.TypeScript概念(1).TypeScript(简称:TS)是JavaScript的超集(JS有的TS都有)(2).TypeScript = Type + JavaScript(在JS基础之上,为JS添加了类型支持)(3).TypeScript是微软开发的开源编程语言,可以在任何运行JavaScript的地方运行。2.TypeScript为什么要为JS添加类型支持?背景: JS的类型系统存在"先天缺陷", JS代码中绝大部分错误都是类型错误(Uncau

2022-05-27 14:51:09 278

原创 四.共享模型之管程

1.共享问题(1).小故事老王(操作系统)有一个功能强大的算盘(CPU),现在想它租出去,赚一点外快。小南,小女(线程)来使用这个算盘来进行一些计算,并按照时间给老王支付费用。但小南不能一天24小时使用算盘,他经常要小憩一会(sleep),又或是去吃饭上厕所(阻塞 io 操作),有 时还需要一根烟,没烟时思路全无(wait)这些情况统称为(阻塞)在这些时候,算盘没利用起来(不能收钱了),老王觉得有点不划算另外,小女也想用用算盘,如果总是小南占着算盘,让小女觉得不公平于是,老王灵机一动,想了

2022-05-19 09:30:08 102

原创 十三.触发器

1.简介(1).触发器,就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能,存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段的执行,无需手动调用。(2).在MySQL中,只有执行insert, delete, update操作时才能触发触发器的执行。(3).触发器的这种特性可以协助应用在数据库确保数据的完整性,日志记录,数据校验等操作。(4).使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似

2022-05-19 08:14:06 126

原创 十二.存储过程

1.概念(1).MySQL5.0版本开始支持存储过程。(2).简单的说,存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;(3).存储过程就是数据库SQL语言层面的代码封装与重用。2.特性(1).有输入输出参数,可以声明变量,有if/else, case, while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能(2).函数的普遍特征性: 模块化,封装,代码复用(3).速度快,只有首次执行需要经过编译和优化步骤,后续被调用可以直接执行,省

2022-05-18 13:37:53 129

原创 @Autowrite 和 @Resource 以及 @Qualifier 注解的区别

@Autowrite:通过类型去注入,可以用于构造器和参数注入。当我们注入接口时,其所有的实现类都属于同一个类型,所以就没办法知道选择哪一个实现类来注入。@Resource:默认通过名字注入,不能用于构造器和参数注入。如果通过名字找不到唯一的 Bean,则会通过类型去查找。如下可以通过指定 name 或者 type 来确定唯一的实现@Resource(name = "userService",type = UserService.class) private UserService userServi

2022-05-18 09:06:06 1327

原创 保证 Controller 的并发安全

SpringMVC中的Controller是单例, 因为在Tomcat容器中,每个servlet是单例的。在SpringMVC中,Controller 默认也是单例。 采用单例模式的最大好处,就是可以在高并发场景下极大地节省内存资源,提高服务抗压能力。单例的Controller有个问题就是: 在Controller中定义的实例变量,在多个请求并发时会出现竞争访问,Controller中的实例变量不是线程安全的。示例:@Controllerpublic class TestController {

2022-05-18 08:53:10 226

原创 BigDecimal工具类

import java.math.BigDecimal; /** * 用于高精确处理常用的数学运算 */ public class ArithmeticUtils { //默认除法运算精度 private static final int DEF_DIV_SCALE = 10; /** * 提供精确的加法运算 * * @param v1 被加数 * @param v2 加数

2022-05-18 08:28:53 183

原创 springboot文件下载工具类

import javax.servlet.http.HttpServletResponse;import java.io.*;public class FileUtil { public static boolean downloadFile(HttpServletResponse response, File file){ byte[] buffer = new byte[1024]; FileInputStream fis = null;

2022-05-18 08:11:46 447

原创 解决SpringBoot跨域问题方法

1.实现 WebMvcConfigurer#addCorsMappings 的方法import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Confi

2022-05-17 21:38:13 61

原创 一.git

1.git概述(1).git历史Git诞生于一个极富纷争大举创新的时代。Linux内核开源项目有着为数众多的参与者。1991 - 2002年间绝大数的Linux内核维护都花在了提交补丁和保存归档的繁琐事务上。到了2002年,开始使用一个专门的分布式版本控制系统 BitKeeper来管理和维护代码到了2005年,开发BitKeeper的商业公司和Linbx内核开源社区的合作关条结束,他们收回了Linux内核社区免费使用BitKeepef的权力,最终Linux的流造者Linvs Tonvalds纳断,书反

2022-05-17 13:35:31 89

原创 十一.MySQL视图

1.介绍(1).视图(view)是一个虚拟表,非真实存在,其本质是根据SQL语句获取动态的数据集,并为其命令,用户使用时只需要使用视图名称即可获取结果集,并可以将其当作表来使用。(2).数据库中只存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中。(3).使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。2.作用(1).简化代码,可以把重复使用的查询封装成视图重复使用,

2022-05-16 15:42:04 71

原创 Snowflake生成Id

public class SnowflakeIdGenerator { //================================================Algorithm's Parameter============================================= // 系统开始时间截 (UTC 2017-06-28 00:00:00) private final long startTime = 1498608000000L; //

2022-05-16 14:52:38 111

原创 java: 错误: 不支持发行版本 5

在maven的setting.xml文件中配置下 <profile> <id>development</id> <activation> <jdk>1.8</jdk> <activeByDefault>true</activeByDefault> </activation> <pr

2022-05-15 09:21:49 142

原创 gson将字符串转成对象列表

1.添加gson的maven依赖 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency>2.演示demoimport

2022-05-11 15:01:38 1263

原创 十.MySQL函数

1.概述在MySQL中,为了提高代码重用性和隐藏实现细节,MySQL提供了很多函数。函数可以理解为别人封装好的模板代码。2.分类(1).聚合函数(2).数学函数(3).字符串函数(4).日期函数(5).控制流函数(6).窗口函数3.MySQL函数-聚合函数(1).概述在MySQL中,聚合函数主要由: count, sum, min, max, avg group_concat()group_concat函数作用实现行合并group_concat函数首先根据group by指定的列进

2022-05-10 08:48:30 95

原创 九.多表查询

1.多表关系(1).介绍实际开发中,一个项目通常需要很多张表才能完成。例如: 一个商城项目就需要分类表(category), 商品表(products), 订单表(orders)等多张表。且这些表的数据之间存在一定的关系。(2).分类[1].一对一关系示例:一个学生只有一张身份证;一张身份证只能对应一学生在任一表中添加唯一外键,指向另一主键,确保一对一关系一般一对一关系很少见,遇到一对一关系的表最好是合并表[2].一对多/多对一关系示例学生和课程分析: 一个学生可以选择多门课程,

2022-05-09 14:31:09 388

原创 五.结构型模式

结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者采用组合或聚合来组合对象。由于组合关系或者聚合关系比继承关系耦合度低,满足"合成复用原则",所以对象结构模式比类结构模式具有更大的灵活性。结构型模式分为以下七种:代理模式适配器模式装饰器模式桥接模式外观模式组合模式亨元模式1.代理模式(1).概述由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象

2022-05-06 15:07:06 569

原创 四.创建者模式

创建型模式的主要关注点是"怎样创建对象?“, 它的主要特点是"将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为:单例模式工厂方法模式抽象工厂模式原型模式建造者模式1.单例设计模式单例模式(Singleton Pattern)是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的

2022-04-27 11:04:31 162

原创 三.软件设计原则

在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可维护性和可复用性。增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本。1.开闭原则对扩展开放,对修改关闭。在程序需要进行扩展的时候,不能修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。因为抽象类灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生来

2022-04-21 14:30:20 586

原创 二.UML

统一建模语言(Unified Modeing Language, UML)是用来设计的可视化建模语言。它的特点是简单,统一,图形化,能表达软件设计的动态与静态信息。UML从目标系统的不同角度出发,定义了用例图,类图,对象图,状态图,活动图,时序图,协作图,构件图,部署图等9种图。1.类图描述类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类,类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。2.类图的作用在软件工程中,类图

2022-04-21 11:19:06 68

原创 一.设计模式概述

1.软件设计模式的产生背景"设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年美国著名建筑大师,加利福亚大学伯克利分校环境结构中心主任克里斯托夫亚历山大在他著作《建筑模式语言:城镇,建筑,构造》中描述了一些常见的建筑设计问题,并提出了253种关于对城镇,邻里,住宅,花园和房间等进行设计的基本模式。1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995年,艾瑞克伽玛,理查德海尔姆,拉尔夫约翰森,约翰威利斯迪斯等4位作者合作出版了《设计模式:

2022-04-21 09:28:06 34

原创 八.正则表达式

1.简介正则表达式(regular expression)描述了一种字符串匹配的规则,正则表达式本省就是一个字符串,使用这个字符串来描述,用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索,替换那些符合某个规则的文本。MySQL通过REGEXP关键字支持正则表达式进行字符串匹配。2.格式模式描述^匹配输入字符串的开始位置$匹配输入字符串的结束位置.匹配除"\n"之外的任何单个字符[…]字符集合. 匹配所包含的任意一个

2022-04-20 13:06:55 306

原创 三.通用方法

BaseMapper源码://// Source code recreated from a .class file by IntelliJ IDEA// (powered by FernFlower decompiler)//package com.baomidou.mybatisplus.core.mapper;import com.baomidou.mybatisplus.core.conditions.Wrapper;import com.baomidou.mybatisplus.

2022-04-20 13:01:20 145

原创 一.Nginx简介

1.背景介绍Nginx(“engine x”)一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】,同时也是一个【POP3/SMTP/IMAP代理服务器】,是由伊戈尔·赛索耶夫(俄罗斯人)使用C语言编写的,Nginx的第一个版本是2004年10月4号发布的0.1.0版本。另外值得一提的是伊戈尔·赛索耶夫将Nginx的源码进行了开源,这也为Nginx的发展提供了良好的保障。名词解释WEB服务器:WEB服务器也叫网页服务器,英文名叫Web Server,主要功能是为用户提供网上信息浏览服务

2022-04-19 15:49:57 118

原创 一.系统架构演变

1.系统架构演变单体应用架构 --> 垂直应用架构 --> 分布式架构 --> SOA架构 --> 微服务架构(1).单体应用架构优点:​ [1].项目架构简单,小型项目的话,开发成本低​ [2].项目部署在一个节点上,维护方便缺点:​ [1].全部功能集成在一个工程中,对于大型项目来讲不易开发和维护​ [2].项目模块之间紧密耦合,单点容错率低​ [3].无法针对不同模块进行针对性优化和水平扩展(2).垂直应用架构

2022-04-19 09:22:34 363

原创 七.基本查询

1.基本查询(1).概念[1].数据库管理系统一个重要功能就是数据查询,数据查询不应只是简单返回数据库中存储的数据,还应该根据需要对数据进行筛选以及确定数据以什么样的格式显示。[2].MySQL提供了功能强大,灵活的语句来实现这些操作[3].MySQL数据库使用select语句来查询数据。(2).语法格式select [all|distinct] <目标列的表达式1> [别名], <目标列的表达式1> [别名] ...from <表名或视图名>

2022-04-19 08:39:20 419

原创 二.环境准备

1.数据准备-- 创建数据库create database shop;-- 使用数据库use shop;-- 创建测试表create table tb_user( id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', user_name varchar(20) NOT NULL COMMENT '用户名', password varchar(20) NOT NULL COMMENT '密码', name varchar

2022-04-18 20:43:21 207

原创 六.MySQL约束

1.概念约束英文: constraint约束实际上就是表中数据的限制条件2.作用表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性,比如用户表有些列的值(手机号)不能为空,有些列的值(身份证号)部分重复。3.分类(1).主键约束(primary key)PK(2).自增长约束(auto_increment)(3).非空约束(no null)(4).唯一性约束(unique)(5).默认约束(default)(6).零填充约束(zerofill)(7).外键约束(fore

2022-04-18 20:25:35 122

原创 五.数据类型

1.数据类型类型大小范围(有符号)范围(无符号)用途TINYINT1byte(-128, 127)(0, 255)小整数值SMALLINT2byte(-32 768, 32 767)(0, 65 535)大整数值MEDIUMINT3byte(-8 388 608, 8 388 607)(0, 16 777 215)大整数值INT或INTEGER4byte(-2 147 483 648, 2 147 483 647 )大整数值

2022-04-18 11:55:07 49

原创 四.MySQL数据库基本操作

1.DDL(1).概念:DDL(Data Definition Language), 数据定义语言,该语言部分包括以下内容:[1].对数据库的常用操作[2].对表结构的常用操作[3].修改表结构(2).对数据库的常用操作[1].查看所有的数据库show databases;[2].创建数据库create database [if not exists] 数据库名称 [charset=utf8];[3].切换(选择要操作的)数据库use 数据库名称;[4].删除数据库drop

2022-04-18 09:03:18 191

原创 一.jvm引言

1.什么是jvm(1).定义Java Virtual Machine - java 程序的运行环境(java 二进制字节码的运行环境)(2).好处[1].一次编写,到处运行[2].自动内存管理,垃圾回收功能[3].数组下标越界检查[4].多态(3).比较jvm jre jdk2.学习JVM有什么用?(1).面试(2).理解底层的实现原理(3).中高级程序员的必备技能3.常见jvm4.学习路线(1).jvm内存结构...

2022-04-18 08:45:32 383

原创 三.java线程

1.创建线程(1).直接使用Thread示例package com.xiaotian.demo01;import lombok.extern.slf4j.Slf4j;@Slf4jpublic class Demo01 { public static void main(String[] args) { //创建线程对象 Thread t = new Thread(){ @Override public v

2022-04-16 12:32:36 124

原创 一.MyBatis简介

1.了解Mybatis-Plus(1).Mybatis-Plus介绍MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发,提高效率而生。(2).文档地址添加链接描述(3).源码地址添加链接描述(4).特性[1].无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。[2].损耗小:启动即自动注入基本CURD,性能基本无损耗,直接面向对象操作。[3].强大的CURD操作:内置通用Mapper, 通用Serv

2022-04-15 21:26:15 598

原创 一.数据结构和算法概述

1.什么是数据结构?(1).官方解释:数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。(2).大白话数据结构就是把数据按照一定的关系组织起来的集合,用来组织和存储数据2.数据结构分类传统上,我们可以把数据结构分为逻辑结构和物理结构两大类。(1).逻辑结构分类逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互关系分类:[1].集合结构:集合结构中数据元素除了属于同一集合外,他们之间没有任何其他的关系[

2022-04-15 12:55:29 420

原创 三.MySQL简介

1.MySQL简介(1).MySQL数据库管理系统由瑞典的DataKonsultAB公司研发,该公司被Sun公司收购,现在Sun公司又被Oracle公司收购,因此MySQL目前属于Oracle旗下产品(2).MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版。由于其体积小,速度快,总体拥有成本低,一般中小型网站的开发都选择MySQL作为网站数据库。2.MySQL的特点(1).MySQL数据库是用C和C++语言编写的,以保证源码的可移植性

2022-04-15 11:15:30 919

原创 二.数据库系统

1.数据库数据库(DataBase)是一个以某种组织方式存储在磁盘上的数据的集合2.数据库应用数据库应用系统是指基于数据库的应用软件3.数据库管理系统(数据库软件)(1).关系型数据库[1].Oracle数据库(老大,最挣钱的数据库)[2].MySQL数据库(最流行中型数据库)...

2022-04-15 11:11:26 478

空空如也

空空如也

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

TA关注的人

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