跳转至

Blog

使用gin搭建api后台系统之MySQL初步CURD

之前的文章介绍了gin框架的基础使用,现代的web系统,很少不与数据库打交道的,接下来的几篇文章,从日常使用的比较多的数据库MySQL, Mongodb, redis 来分别简单的介绍如何使用,这篇先介绍一下MySQL的使用。

使用gin搭建api后台系统之cookie与session

之前的文章都是一种无状态的请求,在处理有状态的请求时,如用户登录的场景就不行了,web系统通常使用cookie或者session来记录用户状态,本文记录一下gin框架下cookie与session的使用。

使用gin搭建api后台系统之框架搭建

gin 是golang 中比较流行的框架,很多系统都是在该框架下开发的,这个框架给我的感觉像是Tornado在python中的位置,基础的功能都有,但是如果想要很好的使用,还需要开发很多自己的功能与中间件,在看过不少的教程以后,想要记录一下学习的过程。

本系列简单的实现了一些做后台服务的能用方法,如获取参数,数据库查询等操作,项目的整体还谈不上架构,顶多算是个quick start, 目录结构也不那么讲究,因为初学,所以肯定会有很多问题。以后再一点点的实践一点点的修。

为什么MySQL喜欢用B+树

最近看到一篇文章讲MySQL的底层数据结构的,说到Innodb为什么使用B+树作为索引的数据结构,讲的非常好,由浅入深。以下是原文信息

大家好,我是小林。

「为什么 MySQL 采用 B+ 树作为索引?」这句话,是不是在面试时经常出现。

要解释这个问题,其实不单单要从数据结构的角度出发,还要考虑磁盘 I/O 操作次数,因为 MySQL 的数据是存储在磁盘中的嘛。

这次,就跟大家一层一层的分析这个问题,图中包含大量的动图来帮助大家理解,相信看完你就拿捏这道题目了!

golang查询MySQL数据

最近在看gin框架的使用,众多的文档和教程中都比较推荐使用 gorm 来操作数据库,但是我本人对orm实在无感,所在还是学习一下使用原生的sql来操作MySQL吧。

在github上 https://github.com/go-sql-driver/mysql 的start 数最多,维护的也比较好,决定先拿它练练基础的curd吧。

golang中锁Mutex与通道channel的选择

Mutex和channel 都可以在并发环境下对资源进行保护,避免竞态, channel 在 golang 中一直被追捧,但是既然都能解决问题,但为什么还要弄两个东西呢?

查阅一些文章,发现有些时候对于channel过于追捧了。有时候该用Mutex 还是要用Mutex的,不要为了用channel 而用channle, 需要区分不同的场景

golang中的接口使用

golang 中的接口和别的面向对象中的接口有很大的不同。

接口的定义

1
2
3
4
//定义一个接口,它有一个run 方法
type Runable interface {
    run()
}

定义一个Runable 接口,它有一个方法,run() , 这个方法没有参数也没有返回值

结构体可以定义一个方法,如果某个结构体定义了run() 方法,则说明该结构体实现了 Runable 接口,并不像java 或者 python 中的类,在定义的时候在显示的说明继承自哪个接口。

golang中结构体方法的接收者类型问题

golang 中结构体可以看成面向对象编程中的类,可以为结构体定义方法,注意这里的方法和函数的区别,函数的定义是没有接收者的,方法是有接收者(receiver)的,这里的接收者可以是实例指针形式或者实例形式,鉴于性能的原因,recv 最常见的是一个指向 receiver_type 的指针,(因为我们不想要一个实例的拷贝,如果按值调用的话就会是这样),特别是在 receiver 类型是结构体时,就更是如此了。

golang中切片作为函数参数

golang 中的切片(slice) 和 python 中的 list 很像,但是又有很多不一样的地方,本文总结一下,当某个函数的参数是切片类型的时候的一些特性。