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

相关推荐
廿一夏2 小时前
MySql存储引擎与索引
数据库·sql·mysql
敲个大西瓜4 小时前
Java项目常用数据归档方式
mysql
kyriewen6 小时前
面试官让我查各部门工资最高的员工,我用AI三秒写出窗口函数,他愣了
后端·mysql·面试
小码工作室6 小时前
使用 HAVING 进行 MySQL 集合筛选
mysql
罗超驿7 小时前
18.事务的隔离性和隔离级别:MySQL面试高频考点全解析
数据库·mysql·面试
小江的记录本7 小时前
【Java基础】Java 8-21新特性:JDK21 LTS:虚拟线程、模式匹配switch、结构化并发、序列集合(附《思维导图》+《面试高频考点清单》)
java·数据库·python·mysql·spring·面试·maven
XMYX-08 小时前
37 - Go env 环境变量:配置管理与运行时控制
开发语言·golang
木心术18 小时前
Windows系统下MySQL与AI工具集成方案:数据存储与调用实践
人工智能·windows·mysql
这个DBA有点耶8 小时前
SQL改写实战:子查询、CTE、窗口函数性能对比
数据库·mysql·性能优化
小江的记录本9 小时前
【Java基础】反射与注解:核心原理、自定义注解、注解解析方式(附《思维导图》+《面试高频考点清单》)
java·数据结构·python·mysql·spring·面试·maven