上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 40 下一页
摘要: 1. 简单创建记录 user := User{Name: "李四", Age: 88, Birthday: time.Now()} ret := db.Create(&user) // 通过数据的指针来创建 fmt.Println(user.ID) // 返回插入数据的主键 fmt.Println( 阅读全文
posted @ 2021-11-16 19:19 专职 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 1. mysql的初始化配置 dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?%s", user, passwd, host, port, db, other) //db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{ 阅读全文
posted @ 2021-11-16 15:16 专职 阅读(2530) 评论(0) 推荐(0) 编辑
摘要: 模型定义 模型是标准的结构体,由go的基本数据类型、实现了Scanner和Valuer接口的自定义类型及其指针或别名组成 例如: type User struct { ID uint Name string Email *string Age uint8 Birthday *time.Time Me 阅读全文
posted @ 2021-11-16 14:50 专职 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 特性 全功能 ORM 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承) Create,Save,Update,Delete,Find 中钩子方法 支持 Preload、Joins 的预加载 事务,嵌套事务,Save Point,Rollbac 阅读全文
posted @ 2021-11-16 10:52 专职 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 1. redis简单介绍 redis支持数据的持久化,将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用 redis不仅仅支持key-value数据,还支持:string,list,set,hash等 redis支持数据备份,即master-slaver模式的数据备份 读11w/s,写8W/ 阅读全文
posted @ 2021-11-12 17:37 专职 阅读(713) 评论(0) 推荐(0) 编辑
摘要: package main import ( "fmt" "reflect" ) func B2S(bs []uint8) string { // 将字节切片转换成字符串 ba := make([]byte, 0) // 创建一个字节切片,默认容量0 fmt.Println(ba, reflect.T 阅读全文
posted @ 2021-11-12 14:29 专职 阅读(2399) 评论(0) 推荐(0) 编辑
摘要: 1. 安装mysql驱动库和sqlx基于官方sql库的扩展库 go get github.com/go-sql-driver/mysql go get github.com/jmoiron/sqlx 2. 链接mysql package main import ( "fmt" _ "github.c 阅读全文
posted @ 2021-11-11 17:06 专职 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 一、GMP模型原理first: 1. 全局队列:存放待运行的G2. P的本地队列:同全局队列类似,存放待运行的G,存储的数量有限:256个,当创建新的G‘时,G’优先加入到P的本地队列,如果队列已满,会把P本地队列中一半的G移动到全局队列3. M线程:M运行G需要先获取P,然后从P本地队列中取G运行 阅读全文
posted @ 2021-11-11 11:21 专职 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 1. 概念 原子操作 atomic 包 加锁操作涉及到内核态的上下文切换,比较耗时,代价高, 针对基本数据类型我们还可以使用原子操作来保证并发的安全, 因为原子操作是go语言提供的方法,我们在用户态就可以完成,因此性能比加锁操作更好 go语言的原子操作由内置的库 sync/atomic 完成2. a 阅读全文
posted @ 2021-11-10 10:57 专职 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 1. Go语言中可以使用sync.WaitGroup来实现并发任务的同步 package main import ( "fmt" "sync" ) func hello(wg *sync.WaitGroup) { defer wg.Done() fmt.Println("hello") } func 阅读全文
posted @ 2021-11-08 17:37 专职 阅读(637) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 40 下一页