golang中gorm.io/gorm库
目录
由来
gorm.io/gorm
是Go语言中一款优秀的ORM(对象关系映射)库,用于简化数据库操作。该库提供了一组功能强大且易于使用的API,可以帮助开发者轻松地进行数据库连接、CRUD操作和查询等。
多种主要实现用法及其代码示例
- 连接数据库并创建表:
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type User struct {
ID uint
Name string
Age int
}
func main() {
dsn := "user:password@tcp(localhost)/database_name?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("Failed to connect to database")
}
err = db.AutoMigrate(&User{})
if err != nil {
panic("Failed to create table")
}
}
- 插入数据:
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type User struct {
ID uint
Name string
Age int
}
func main() {
dsn := "user:password@tcp(localhost)/database_name?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("Failed to connect to database")
}
user := User{Name: "John", Age: 30}
result := db.Create(&user)
if result.Error != nil {
panic("Failed to insert data")
}
}
- 查询数据:
package main
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type User struct {
ID uint
Name string
Age int
}
func main() {
dsn := "user:password@tcp(localhost)/database_name?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("Failed to connect to database")
}
var user User
result := db.First(&user, 1) // 根据ID查询用户信息
if result.Error != nil {
panic("Failed to query data")
}
fmt.Println(user)
}
其他类似框架
gorm.io/gorm
是一款流行的Go语言ORM库,除此之外,还有其他类似的ORM库可供选择,例如:github.com/jinzhu/gorm
github.com/go-xorm/xorm
upper.io/db.v3
详细区别
gorm.io/gorm
是一个强大的Go语言ORM库,提供了丰富的功能和易用的API。- 与其他类似的ORM库相比,
gorm.io/gorm
具有更好的性能、更全面的文档和更活跃的开发社区。 gorm.io/gorm
使用更现代化的API设计和更灵活的查询语法,支持多种数据库驱动。