Skip to main content

One post tagged with "Go"

与 Go 语言相关的文章

View All Tags

Gorm

· 3 min read
同阙
Just for gopher
前往官网

创建数据库连接

import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)

func main() {
// 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情
dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// 使用 db 对象执行数据库操作
}

CRUD

package main

import (
"gorm.io/driver/postgres"
"gorm.io/gorm"
)

type User struct {
gorm.Model
Name string `gorm:"default:1"`
}

func main() {
dsn := "host=localhost user=testuser password=testpass dbname=testdb port=5432 sslmode=disable TimeZone=Asia/Shanghai"
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
db = db.Debug()
if err != nil {
panic("failed to connect database")
}
//重置练习表
err = db.Migrator().DropTable(&User{})
if err != nil {
panic("failed to drop table")
}
err = db.AutoMigrate(&User{})
if err != nil {
panic("failed to migrate")
}
users := []User{
{Name: "张三"},
{Name: "李四"},
{Name: "王五"},
}
result := db.Create(&users)
if result.Error != nil {
panic("failed to create test data")
}

//TODO:

}