Go Gin笔记
一、Web框架
框架是一系列工具的集合,可以让开发变得更加便捷
下方表格罗列了go常见的web框架
框架
特点
备注
go原生的net/http
支持快速开发一个简单的web应用
gin框架
go官方推荐相当流行的一个轻量级的web框架,性能高效,非常推荐学习
Beego
最早的web框架,工具比较全,但是性能较差
fiber
202年发布的框架,性能比较高,上手较快,和gin类似
1、gin框架介绍
gin框架的官网:https://gin-gonic.com/
go官方文档的一个Gin快速教程:https://golang.google.cn/doc/tutorial/web-service-gin
Bilibili的Gin视频教程:https://www.bilibili.com/video/BV1gJ411p7xC?p=3
1.1 gin框架的特点
gin框架的特点(以下来自官网介绍):
快速
基于 Radix 树的路由,小内存占用。没有反射。
可预测的 API 性能
支持路由组
Gin帮助您更好地组织您的路由,例如,按照 ...
Go基础编程
一、GO语言简介与配置
推荐资料:https://www.liwenzhou.com/ (七米老师博客,推荐)
https://www.qcrao.com/
https://golang.design/
https://golang.design/go-questions/(程序员面试笔试宝典)
https://www.flysnow.org/
https://www.cnblogs.com/sunsky303/default.html?page=2
1、Go包的官方地址
官网:https://golang.org/dl/
国内镜像站:https://golang.google.cn/dl
流程图地址:https://app.diagrams.net/
Golang内置库文档:https://studygolang.com/pkgdoc
2、Go优势
交叉编译、编译快速
开发效率高
执行性能好
天生支持并发
使用UTF-8编码方式来存放代码
3、学习心得
使用golang Idea编辑器或vs code,但是不要开启自动提示功能,使用省电模式,因为一开始就自己手写所有语法才能记得 ...
Mybatis使用
一、Mybatis介绍
Mybatis是一款优秀的持久层框架,支持定制化SQL、存储过程与高级映射
Mybatis避免了所有的JDBC代码和手动设置参数以及获取结果集合,
Mybatis可使用简单的XML或注解来配置和映射原生信息,并将接口和Java的POJO(Plan Ordinary Java Object)将普通的Java对象映射成数据库中的记录
说到底就是其他语言中的ORM
官网:https://mybatis.org/mybatis-3/zh_CN/index.html
本文使用的是:3.5.16版本
1、Maven安装mybatis
在maven工程中,是用pom.xml管理依赖,那么就可以用来管理mybatis
查找mybatis的maven坐标:https://mvnrepository.com/artifact/org.mybatis/mybatis
2、Maven安装Mysql驱动
在maven工程中,是用pom.xml管理依赖,需要连接mysql,那就需要mysql驱动
查找mysql驱动的maven坐标:https://mvnrepository.com ...
Maven使用
一、Maven安装
https://maven.apache.org/download.cgi
1、Maven特点
Apache Maven 是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven 可以从一个中心信息管理项目的构建、报告和文档。
1.1 管理项目依赖
Maven主要是用来管理依赖,与go的module模式一样来管理项目依赖
Maven主要是在POM的xml文件中高速Maven我们需要哪些依赖,Maven会自动的将jar包以及它所以来的其他所有的jar包全部下载并导入项目中
1.2 管理项目构建
Maven解决的另一个问题是构建管理
2、下载配置Maven
下载maven后配置环境变量,然后查看maven目录,在conf/settings.xml中可以看到maven的本地仓库存储目录
默认是在 ~/${username}/.m2/reposity目录
查看maven版本
3、IDEA配置maven
下图是在IDEA中,默认会有一个maven
但是我们一般不用这个,需要使用自己安装配 ...
Java基础语法
一、数据类型1、第一行代码
java的文件名和代码的类名必须一致
12345public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World"); }}
保存上面代码为 HelloWorld.java
12345# 先编译,编译会产生HelloWorld.classjavac HelloWorld.java# 再执行java HelloWorld.class
Java的执行原理就是最终翻译成计算机底层可以识别的机器语言
2、JDK组成
JDK组成
JVM(Java Virtual Machine):Java虚拟机,真正运行Java程序的地方
核心类库:Java自己写好的程序,给程序自己的程序调用的
JRE(Java Runtime Environment):Java的运行环境
JDK(Java Development Kit):Java开发工具包(包括上面所有 ...
kafka使用
一、kafka安装1、docker安装1.1 拉取镜像
https://hub.docker.com/r/bitnami/kafka
2、创建容器1.1 docker run模式
下面命令是单机模式的kafka
参考:https://blog.csdn.net/u010088278/article/details/127824196
比如kafka部署在A机器,远程IP是192.168.0.120:9094,那本地代码想连接,就必须按如下配置
KAFKA_CFG_ADVERTISED_LISTENERS中配置EXTERNAL://192.168.0.120:9094 表示外部链接的IP,因为是容器部署,所以IP是外部宿主机的IP
1234567891011121314151617docker run -d \ --name kafka \ --restart always \ --hostname kafka-server \ --memory 1g \ --cpus 1.0 \ -e KAFKA_ENABLE_KRAFT=yes \ -e K ...
elasticsearch使用
一、安装elasticsearch1、docker安装1.1 拉取镜像
官方安装教程:https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docker.html
拉取镜像
https://hub.docker.com/_/elasticsearch/tags
1docker pull elasticsearch:7.17.24
1.2 创建单节点的容器
https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docker.html
启动容器
elasticsearch容器内数据存储目录:/usr/share/elasticsearch/data
123# elasticsearch# /home/ly/docker_volumn/elasticsearch/data:/usr/share/elasticsearch/data 数据映射docker run -itd -p 9200:9200 -p 9300:93 ...
LeetCode刷题
LeetCode算法刷题
画图工具:https://boardmix.cn/
一、基础知识1、进位与取模1.1 进位
sum / 10:
用于计算进位值。
如果 sum 大于等于 10,sum / 10 的结果是 1 或更大,表示需要进位。
如果 sum 小于 10,sum / 10 的结果是 0,表示没有进位。
1.2 取模
**sum % 10**:
用于计算当前位的值。
如果 sum 大于等于 10,sum % 10 的结果是 sum 除以 10 的余数,表示当前位的值。
如果 sum 小于 10,sum % 10 的结果是 sum 本身,表示当前位的值。
2、短除法
详细见下图
3、因数和倍数1.1 因数(约数)
在整数除法中,如果商是整数且没有余数(或者说余数为0)
那么除数就是被除数的因数(也叫约数)
12312 ÷ 2 = 62是12的因数
1.1.1 最小最大因数
一个数的因数的个数是有限的
最小因数都是1
最大因数是它本身
1.2 倍数
在整数除法中,如果商是整数且没有余数(或者说余数为0)
被除数是除数的倍数比如12是2的6,那么12就是 ...
mongoDB使用
一、MongoDB介绍1、什么是mongoDB
官网:https://www.mongodb.com/zh-cn
mongoDB操作文档:https://www.mongodb.com/docs/v5.0/
1.1 mongoDB特点
MongoDB是一个开源、高性能、无模式的文档型数据库,是NoSQL数据库的其中一种,是最像关系型数据库的非关系型数据库
无模式:是指mongoDB在创建表时,不需要像关系型数据库(mysql)预先指定字段列名
MongoDB的数据结构比较散列,是一种类似于JSON格式的BSON,可以存储比较复杂的数据
MongoDB中记录的每一行都是由key/value组成(也称为field:value)的数据结构,每一行是指一个文档,一个文档是指一个JSON对象
MongoDB中支持基本类型外,还支持数组、文档数组等
2、创建mongoDB
推荐使用docker创建mongoDB容器来学习,减少mongoDB安装的成本
docker镜像地址:https://hub.docker.com/_/mongo
这个镜像中有如何创建容器、如何设置Mon ...
50道SQL练习题
一、前言
本篇主要是知乎的50道SQL练习题和B站对50道SQL练习题配套视频的学习记录
参考:
https://zhuanlan.zhihu.com/p/38354000(对题目做了分类)
https://zhuanlan.zhihu.com/p/43289968(原始题目)
1、数据准备1.1 sql表语句1234567891011121314151617181920212223242526272829303132333435363738394041-- 学生表create table if not exists `student`( `id` bigint not null auto_increment comment '主键ID', `student_id` bigint not null default 0 comment '学生ID', `student_name` varchar(32) not null default '' comment ...