目录
数据库
定义:存储数据的仓库
简略安装过程:
1、解压压缩包
2、配置my.ini文件
3、MySQL — install
4、mysql — initialize — console 会出现默认的MySQL连接密码,同时出现data文件夹
5、利用初始化密码登陆 mysql -P 3306 -u root -p
6、改变MySQL连接密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你要修改的密码';
接下来使用客户端的工具去连接;
Navicat
建表操作
create table test{
列字段 类型;
列字段 类型
...
}
列字段类型分类
数字类型: int、bigint、decimal
字符串类型: varchar、char
时间类型: date、time、datetime
增删改查操作
增加:insert into 表名 values(?,?,?)
删除:delete from 表名 where 条件
修改:update 表名 set 字段 = 值 where 条件
高级查询
排序:order by asc(升序)
order by desc(降序)
分组并过滤:group by 字段 having ...
模糊查询:like '%字段%'
查找区间:between 值1 and 值2
连接查询
外连接:
左外连接:主表 left join 从表 on 连接条件
(以左边的表为主,主表与从表可能没有主外键关系)
右外连接:从表 right join 主表 on 连接条件
内连接:
①表1 inner join 表2 on 连接条件
②表1,表2 where 连接条件
例:
select * from Test t inner join TestItem ti on t.id = ti.id
select * from Test t , TestItem ti where t.id = ti.id
微服务
StringBoot
概念:基于String框架的一站式解决方案。
在使用之前:项目开发需要利用String做各种框架的整合,如String-MyBatis,String-redis,String-mvc...,结论:会产生大量的配置文件/整合文件。
在出现之后:可以做到0配置,具备对应的框架功能,但是如果不做任何配置,有些框架的部分功能是用不了的;StringMVC中的静态资源映射,绝大多数情况下,配置一个配置文件即可,application.yml。
1.配置文件
application.yml 配置启动器相关的内容
boostrap.yml 通常是配置不变的东西,如配置中心
2.启动器starter
String-Boot-starter-web
String-Boot-starter-jdbc
String-Boot-starter-xxx
作用:是将框架的功能封装调用,将启动器导入到StringBoot工程中,StringBoot工程中就具备了该功能。
3.如何自定义starter(面试题)
3.1.将具备一定功能的StringBoot项目打成jar包,这里把StringBoot项目简称为项目A;
3.2.在StringBoot项目B要使用该功能,只需要导入项目A对应的启动器;
3.3.项目A默认的功能不足以使用,此时项目B就可以通过application.yml—配置类进行配置。
4.StringBoot注解
@configuration 标记类,那么代表是一个配置类
@bean 标记方法,代表Spring管理的javabean
@autoconfigration 自动装配
StringCloud
概念:基于javaEE的应用集成的方案
五大组件
1.注册中心:nacos 服务注册与发现
2.微服务调用:Fegin / openFeign
3.熔断限流:
Hystrix:熔断降级
Sentinel
4.负载均衡:Ribbon
5.网关:getway
将外部请求转发给nacos上注册的服务
作用:保护内部微服务之间的调用关系一般这里是用来做用户请求身份验证。
如下图所示:此时getway就像一个门栏,将客户端和微服务分隔开,使客户端不能直接访问微服务,有getway在,访问时需要客户端先朝getwat发送一个请求,再由getway发送请求给微服务,让客户端只和getway打交道。
服务雪崩:又一个微服务宕机引起整个微服务构架瘫痪
Git
概念:版本控制器
通俗的说,就是管理项目中的代码的,比如你第一次提交了A版代码,第二次提交了B版代码,当你觉得B版本不如A版本或有问题就可回退
1.git与svn对比
①分布式
②去中心化
③分支:可让修复bug和开发功能的动作同步进行
svn:以小组开发项目为例,使用svn做开发时,以组长为中心,小组必须在一起开发才能够互通代码,需要用局域网,组员最终会将代码提交到组长这。
Git:与上面的svn对比,一旦组长的电脑出现了问题,代码丢失,组员将无法提交代码,也无法找回;而使用git,不再以组长为中心,出现代码丢失电脑出问题的情况影响也不大,可以再将本地仓库的代码再上传至git上去。
2.Git的命令
git add | 将添加/修改的文件加入暂存区 |
git commit | 向本地仓库提交代码 |
git push | 向远程仓库gitee推送代码 |
git clone | 从远程仓库下载代码到本地 |
git pull | 从远程仓库更新代码 |
git branch | 将本地分支与远程分支建立连接 |
3.git冲突解决
如上图,a 和 b 都发送了修改 Y 的请求,但a 是第1个提交的,b 是第2个提交,所以a 已经将Y 修改成了A ,当b 再去提交的时候,b 的本意是将Y 改成B,但a 已经将Y 修改成了A,没有Y了,所以b 将Y 修改成B 的操作是执行不下去的,从而造成了冲突。
解决方式:当b 提交代码时,需要先更新代码,再合并,最后做提交操作。