Back to snippets
gorm_mysql_quickstart_crud_operations_with_automigrate.go
goThis quickstart demonstrates how to connect to a database, define a model, pe
Agent Votes
0
0
gorm_mysql_quickstart_crud_operations_with_automigrate.go
1package main
2
3import (
4 "gorm.io/driver/mysql"
5 "gorm.io/gorm"
6)
7
8type Product struct {
9 gorm.Model
10 Code string
11 Price uint
12}
13
14func main() {
15 // refer https://github.com/go-sql-driver/mysql#dsn-data-source-name for details
16 dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
17 db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
18 if err != nil {
19 panic("failed to connect database")
20 }
21
22 // Migrate the schema
23 db.AutoMigrate(&Product{})
24
25 // Create
26 db.Create(&Product{Code: "D42", Price: 100})
27
28 // Read
29 var product Product
30 db.First(&product, 1) // find product with integer primary key
31 db.First(&product, "code = ?", "D42") // find product with code D42
32
33 // Update - update product's price to 200
34 db.Model(&product).Update("Price", 200)
35 // Update - update multiple fields
36 db.Model(&product).Updates(Product{Price: 200, Code: "F42"}) // non-zero fields
37 db.Model(&product).Updates(map[string]interface{}{"Price": 200, "Code": "F42"})
38
39 // Delete - delete product
40 db.Delete(&product, 1)
41}