随笔分类 - Golang
摘要:C/S结构与B/S结构的区别 C/S结构指的是客户端/服务器结构,也称为三层结构。其特点是将应用程序分为客户端和服务器两部分,客户端通过网络传输数据到服务器,服务器处理请求并返回结果给客户端。该结构模式下,客户端负责业务逻辑和显示,而服务器则负责数据存储与处理。比如:电脑端下载的桌面应用 qq/微信
阅读全文
摘要:在GROM使用链式操作过程中,想知道最终执行的SQL是什么,本文讲解三种常见的SQL日志打印方法。 GORM 两个版本 1)jinzhu版(github.com/jinzhu/gorm) 2)IO版(gorm.io/gorm)【重点讲解】 一、全局打印所有的SQL 在gorm.io版本中,我们可以在
阅读全文
摘要:判断 *int 类型的变量是否为某个值可以通过如下步骤: 1. 先判断这个 *int 是否为 nil,nil 表示指针没有指向任何实际的内存地址,可以通过以下代码进行判断: ```if ptr == nil { // ptr 指向的内存地址为 nil}``` 2. 如果不是 nil,需要先通过指针
阅读全文
摘要:1、当只需要执行某个SQL而不需要进行获取返回值时 // 如果其中有变量,则使用?进行占位, sql := "要执行的SQL" // 在Exec方法中在sql 后面可以使用多个参数作为占位的补充 // 例如需要name=?,则写法可以使用util.Db.Exec(sql,"张三").Error er
阅读全文
摘要:一、介绍 https://github.com/syndtr/goleveldb LevelDB 是一个由 Google 公司所研发的 K-V 存储嵌入式数据库管理系统编程库,以开源的 BSD 许可证发布。其作为 LSM Tree 的经典实现,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般
阅读全文
摘要:想接收前端这样的数据格式:【json数组】 [ { "password": "casso", "mobile": "13456789999", "nick_name": "go", "icon": "地址" }, { "password": "casso", "mobile": "134567899
阅读全文
摘要:gorm框架执行原生sql有两种方式,作用不同,分别是: db.exec("sql语句") //执行插入删除等操作使用 db.raw("sql语句") //执行查询操作时使用 举例: db.Exec("UPDATE orders SET shipped_at=? WHERE id IN (?)",
阅读全文
摘要:AMQP 简介 从 AMQP 协议可以看出,Queue、Exchange 和 Binding 构成了 AMQP 协议的核心 Producer:消息生产者,即投递消息的程序。 Broker:消息队列服务器实体。 Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。 Binding:绑定
阅读全文
摘要:在编程领域里,枚举是用来表示只包含有限数量的固定值的类型,在开发中一般用于标识错误码或者状态机。拿一个实体对象的状态机来说,它通常与这个对象在数据库里对应记录的标识状态的字段值相对应。 举例:使用魔术数字进行判断,要置顶一个文章的时候先判断文章是不是已发布状态。 if (state == 2) {
阅读全文
摘要:一、问题分析 HTTP 400的状态码,可以统称前后端对应不上,说明这个请求是无效的,并没有进入后端服务器(控制器)。 主要有两种形式: 1、bad request 是 “错误的请求" 通常产生问题的原因也有两个:①前端传的参数类型或者名称与后台接收参数的实体类的属性类型或者名称不一致;②前端提交a
阅读全文
摘要:解决方法:改成国内可用的代理地址。在命令提示符输入: go env -w GOPROXY=https://goproxy.cn
阅读全文
摘要:出现报错: 根据代理软件查看对应端口号(因为可能不是缺省端口号),需要重新配置代理端口号。 这里本地代理的端口号是10794,而请求的对应的是10792端口,下一步设置记得修改端口号与本地代理代理保持对应(10794)。 #有些朋友好像为什么设置http和socket5其实设置哪种都是可以的,具体看
阅读全文
摘要:1. go语言未提供获取指定区间范围内的随机数方法,只有一个参数获取(0, n)的随机数。 2. 可根据此方法获取指定区间随机数,先随机0到(m-n),再用加 n 的方式解决 例:[5, 10], 先生成[0,5], 再加5 package main import ( "fmt" "math/ran
阅读全文
摘要:问题:修改了一次,而执行了两次这个函数 解决方案 把配置文件进行md5,保存其md5值。在调用这个函数时,再次读取文件进行md5。两者比对,如果相等就不执行下面的逻辑。 这样就解决了,一模一样的配置文件,保存多次,不会执行后续的逻辑。 但是,杜绝了大部分的场景,比如修改了一次,保存了两次,依旧会有看
阅读全文
摘要:代码含有viper独立方式和go embed方式 package main import ( "bytes" "embed" "fmt" "time" "github.com/spf13/viper" ) //go:embed config.yaml var f []byte func main()
阅读全文
摘要:简介 在Go语言应用程序中包含任何文件、目录的内容,都打包到生成的Go语言应用程序中,部署时直接执行一个二进制文件就可以,不用再包含一些静态文件,因为它们已经被打包到生成的应用程序。 基本用法 通过//go:embed指令即可 package main import ( "embed" "fmt"
阅读全文
摘要:一、介绍 github.com/spf13/viper Viper是一个方便Go语言应用程序处理配置信息的库,可以处理多种格式的配置。其支持的特性有: 设置默认值 从JSON、TOML、YAML、HCL和Java properties文件中读取配置数据 可以监视配置文件的变动、重新读取配置文件【热更
阅读全文
摘要:https://blog.csdn.net/qq_34801169/article/details/114374827 一、幂等性: 幂等性,是分布式环境下的一个常见问题,一般是指我们在进行多次操作时,所得到的结果是一样的,即多次运算结果是一致的。也就是说,用户对于同一操作,无论是发起一次请求还是多
阅读全文
摘要:string:可以是一个空字符串,但不能为nil,使用时比较安全 (字符串类型) *string:可以为nil,使用的时候需要判断是否有值(字符串指针类型) 注意: Go 对每个原始数据类型都有默认值。int -> 0, string -> "", bool -> false 同样。所以如果需要添加
阅读全文
摘要:在go中,如果服务端开启了https的SSL/TLS证书,这时客户端用http.get()方法访问就会报错: tls: failed to verify certificate: x509: certificate has expired or is not yet valid: 解决方案: 1)服
阅读全文