Go Xorm CURD 的代码示范

42 min read

以下是一个简单的 Xorm CURD 示例,包括定义结构体、建立连接、插入数据、查询数据、更新数据和删除数据:

package main

import (
	"fmt"
	"log"
	"time"

	"github.com/go-xorm/xorm"
	_ "github.com/mattn/go-sqlite3"
)

type User struct {
	Id        int64
	Name      string
	Age       int
	CreatedAt time.Time `xorm:"created"`
	UpdatedAt time.Time `xorm:"updated"`
}

func main() {
	engine, err := xorm.NewEngine("sqlite3", "test.db")
	if err != nil {
		log.Fatalf("Failed to create engine: %v\n", err)
	}

	if err := engine.Sync2(new(User)); err != nil {
		log.Fatalf("Failed to sync database: %v\n", err)
	}

	user := &User{Name: "Tom", Age: 23}
	if _, err := engine.Insert(user); err != nil {
		log.Fatalf("Failed to insert data: %v\n", err)
	}

	// Query data
	var users []User
	if err := engine.Find(&users); err != nil {
		log.Fatalf("Failed to query data: %v\n", err)
	}
	fmt.Println(users)

	user.Age = 25
	if _, err := engine.Update(user); err != nil {
		log.Fatalf("Failed to update data: %v\n", err)
	}

	if _, err := engine.Delete(user); err != nil {
		log.Fatalf("Failed to delete data: %v\n", err)
	}
}

注:上述代码通过 SQLite3 数据库驱动连接数据库,请确保已经安装该驱动库。