GoLang で一般的に使用されるデータ永続性 ORM フレームワークには、GORM、xorm、Beego ORM があります。 GORM は軽量で使いやすく、さまざまなデータベースをサポートしています。 xorm は強力かつ柔軟で、豊富な機能を提供します。 Beego ORMはシンプルで分かりやすく、主にMySQLとPostgreSQLをサポートしています。
GoLang では、オブジェクト リレーショナル マッピング (ORM) フレームワークの使用が、データ永続性を実現する一般的で便利な方法です。この記事では、これを実現するために使用できる 3 つの最も人気のある GoLang フレームワーク、GORM、xorm、Beego ORM について説明します。
GORM は、軽量で使いやすい ORM フレームワークです。 MySQL、PostgreSQL、SQLite、Oracle などのさまざまなデータベースをサポートしています。 GORM を使用したデータ永続性の例は次のとおりです:
package main import ( "gorm.io/gorm" "log" ) type User struct { ID uint Name string Age int } func main() { // 创建一个 gorm DB 实例 db, err := gorm.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database?parseTime=true") if err != nil { log.Fatal(err) } // 自动迁移表结构 if err := db.AutoMigrate(&User{}); err != nil { log.Fatal(err) } // 创建一条记录 user := User{Name: "John Doe", Age: 30} if err := db.Create(&user).Error; err != nil { log.Fatal(err) } // 查询一条记录 var result User if err := db.First(&result, 1).Error; err != nil { log.Fatal(err) } log.Printf("Queried user: %v", result) }
xorm は、強力な機能と柔軟性で知られるもう 1 つの人気のある ORM フレームワークです。また、MySQL、PostgreSQL、SQLite、SQL Server などのさまざまなデータベースもサポートしています。データ永続化のために xorm を使用する方法は次のとおりです:
package main import ( "fmt" "xorm.io/xorm" ) type User struct { ID int64 Name string Age int } func main() { // 创建一个 xorm engine engine, err := xorm.NewEngine("mysql", "user:password@tcp(127.0.0.1:3306)/database?parseTime=true") if err != nil { fmt.Println(err) return } // 同步表结构(如果不存在则创建) if err := engine.Sync2(new(User)); err != nil { fmt.Println(err) return } // 插入一条记录 user := User{Name: "Jane Doe", Age: 25} _, err = engine.InsertOne(user) if err != nil { fmt.Println(err) return } // 查询一条记录 var result User has, err := engine.ID(1).Get(&result) if err != nil { fmt.Println(err) return } if has { fmt.Println("Queried user:", result) } }
Beego ORM は、Beego Web の一部であるシンプルで使いやすい ORM フレームワークです。フレームワーク。主に MySQL および PostgreSQL データベースをサポートします。データの永続化に Beego ORM を使用する例を次に示します:
package main import ( "beego/orm" "fmt" ) type User struct { ID int Name string Age int } func main() { // 注册模型 orm.RegisterModel(new(User)) // 创建一个 ormer o := orm.NewOrm() // 同步表结构 o.Syncdb("default") // 插入一条记录 user := User{Name: "Bob Smith", Age: 28} _, err := o.Insert(&user) if err != nil { fmt.Println(err) return } // 查询一条记录 var result User err = o.QueryTable("user").Filter("ID", 1).One(&result) if err != nil { fmt.Println(err) return } fmt.Println("Queried user:", result) }
以上がORM を使用してデータの永続性を実現するには、どの golang フレームワークが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。