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

相关推荐
菜鸟小九15 分钟前
mysql(锁)
数据库·mysql·oracle
云和数据.ChenGuang1 小时前
运维面试题之oracle和mysql单表最大容量
运维·mysql·oracle
Z***G4792 小时前
【零基础学Mysql】常用函数讲解,提升数据操作效率的利器
数据库·mysql
aml258__2 小时前
MySQL 数据库管理入门:从创建到删除(T1)
数据库·mysql·oracle·初学数据库
beata3 小时前
MySQL 索引你真的用对了吗?
mysql
TDengine (老段)4 小时前
MySQL/PG/TDengine 时间范围 SQL 表达式
sql·mysql·tdengine
大白的编程日记.4 小时前
【计算网络学习笔记】MySql的多版本控制MVCC和Read View
网络·笔记·学习·mysql
未来之窗软件服务6 小时前
幽冥大陆(三十五)S18酒店门锁SDK go语言——东方仙盟筑基期
java·前端·golang·智能门锁·仙盟创梦ide·东方仙盟·东方仙盟sdk
0***86336 小时前
【Golang】——Gin 框架中的表单处理与数据绑定
microsoft·golang·gin
C***11506 小时前
对基因列表中批量的基因进行GO和KEGG注释
开发语言·数据库·golang