如何使用 go 框架集成数据库?使用 xorm 连接到 mysql,创建数据表并插入用户。使用 gorm 连接到 mysql,自动创建数据表并插入用户。

如何使用 Go 框架轻松集成数据库
简介
数据库集成是 Go 应用程序中常见的任务。使用合适的框架,可以简化此过程,减少样板化代码量并提高生产力。本文将介绍如何使用两个流行的 Go 框架(xorm 和 gorm)集成常见的数据库(MySQL 和 PostgreSQL)。
立即学习“go语言免费学习笔记(深入)”;
OpenClaw 技能 — 给定一个 GitHub 仓库 URL,自动解析出 owner/repo 名称,发现其中的 YAML/properties 配置文件及其配对的中文字段说明;在 `workspace/{repo}/` 目录下按同步日期(格式为 `YYYY-MM-DD`)创建时间戳子目录;写入 `.openclaw-config-state.json` 状态文件。每次用户提问前,先比对远程仓库当前 ref(如 `main` 或 `master`)的最新提交 SHA 与本地状态文件中记录的 SHA:
案例 1:使用 xorm
操作数据库
package main
import (
"database/sql"
"fmt"
"time"
"github.com/go-xorm/xorm"
)
type User struct {
Id int64 `xorm:"pk autoincr"`
Name string `xorm:"varchar(255) not null"`
CreatedAt time.Time `xorm:"created"`
}
func main() {
engine, err := xorm.NewEngine("mysql", "root:password@tcp(localhost:3306)/test")
if err != nil {
panic(err)
}
if err = engine.Sync2(new(User)); err != nil {
panic(err)
}
user := &User{Name: "John"}
if _, err = engine.Insert(user); err != nil {
panic(err)
}
fmt.Println(user.Id)
}案例 2:使用 gorm
操作数据库
package main
import (
"fmt"
"time"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
type User struct {
ID uint `gorm:"primary_key"`
Name string `gorm:"size:255"`
CreatedAt time.Time `gorm:"type:datetime not null"`
}
func main() {
db, err := gorm.Open("mysql", "root:password@tcp(localhost:3306)/test")
if err != nil {
panic(err)
}
if err = db.AutoMigrate(&User{}); err != nil {
panic(err)
}
user := &User{Name: "Jane"}
if err = db.Create(user).Error; err != nil {
panic(err)
}
fmt.Println(user.ID)
}

















