Go使用GORM ORM套件新增資料至資料庫的方式如下。
範例環境:
- Go 1.19
- GORM 2.0 (gorm.io/gorm v1.24.2)
- PostgreSQL 14
事前要求
參考「Golang GORM PostgreSQL基本設定」設定資料庫及安裝GORM套件。
範例
GORM使用gorm.DB.Create(value interface{})
來新增資料,輸入參數為要新增的model pointer。
例如下面將一筆Employee
以gorm.DB.Create
新增到資料表employee
並返回操作後的gorm.DB
物件。
新增後的Employee.ID
可取得資料庫自動遞增的主鍵編號。
呼叫操作後的gorm.DB.Error
返回操作錯誤,若成功則為nil。
呼叫操作後的gorm.DB.RowsAffected
可返回新增的筆數。
main.go
package main
import (
"fmt"
"time"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"gorm.io/gorm/schema"
)
type Employee struct {
ID int64 // primary key, column name is `id`
Name string // column name is `name`
Age int // column name is `age`
CreatedAt time.Time // column name is `created_at`
}
const (...)
func getGormDB() *gorm.DB {...}
func main() {
db := getGormDB()
emp := Employee{
Name: "tony",
Age: 45,
CreatedAt: time.Now(),
}
result := db.Create(&emp) // INSERT INTO employee (name, age, created_at) VALUES ("tony", 45, "2022-12-22 22:05:09.83327")
fmt.Println(emp.ID) // 3
fmt.Println(result.Error) // nil
fmt.Println(result.RowsAffected) // 1
fmt.Println(emp) // {3 tony 45 2022-12-22 22:05:09.83327 +0800 CST m=+0.021885415}
}
沒有留言:
張貼留言