Back to snippets

gorm_mysql_quickstart_crud_operations_with_automigrate.go

go

This quickstart demonstrates how to connect to a database, define a model, pe

19d ago41 linesgorm.io
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}