go gorm 操作MySQL初探

  1. 安装
bash 复制代码
go get -u gorm.io/gen
  1. 实例
bash 复制代码
package main

import (
	"fmt"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

type Product struct {
	gorm.Model
	Name  string
	Price float64
}

func main() {
	// 其中loc是为了解决时间类型timezone少8小时
	dsn := "ellis:ellis@tcp(192.168.214.134:3306)/go_db?charset=utf8mb4&parseTime=True&loc=Local"

	d, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		panic(err)
	}

	d.AutoMigrate(&Product{})

	// d.Create(&Product{Name: "haha", Price: 120.09})

	var product Product
	// 根据ID查询
	d.First(&product, 1)
	// 根据name查询
	d.First(&product, "name=?", "haha")
	fmt.Printf("product.Price: %v\n", product.Price)
	// update一个字段
	d.Model(&product).Update("Price", 190)

	// 更新多个字段
	d.Model(&product).Updates(Product{Name: "11", Price: 120})
	d.Model(&product).Updates(map[string]interface{}{"Price": 199})
}
	//软删除,更新deleted_at字段
	d.Where("name=?", "11").Delete(&Product{})
	//硬删除
	d.Where("name=?", "11").Unscoped().Delete(&Product{})

参考
https://duoke360.com/tutorial/gorm/query-recored

相关推荐
梦三辰13 分钟前
超详细解读:数据库MVCC机制
数据库·mysql·mvcc·快照
孔令飞19 分钟前
22 | 如何继续提升 Go 开发技术?
人工智能·ai·云原生·golang·kubernetes
liuyunshengsir1 小时前
golang 性能优化分析工具 pprof
开发语言·性能优化·golang
孟紫瑶1 小时前
Swift语言的移动应用测试
开发语言·后端·golang
hxung1 小时前
如何保证mysql和redis的数据一致性
java·数据库·redis·mysql
翻滚吧键盘1 小时前
debian12 mysql完全卸载
数据库·mysql
安得权2 小时前
Ubunut18.04 离线安装MySQL 5.7.35
数据库·mysql·adb
LuckyLay2 小时前
LeetCode算法题(Go语言实现)_36
算法·leetcode·golang
在下千玦2 小时前
#在docker中启动mysql之类的容器时,没有挂载的数据...在后期怎么把数据导出外部
mysql·docker·容器
白鸽(二般)2 小时前
mysql
数据库·mysql