对象关系映射ORM是什么?有什么优缺点?go语言中ORM的实现-gorm

ORM

专业的说就是对象模型和关系型数据库之间进行映射
我的理解就是ORM提供API给我们操作数据库

优点 :

ORM 工具通常提供了一组 API 和查询语言,使得开发者可以使用面向对象的方式进行数据库操作,而不需要了解底层数据库的细节。ORM 工具可以自动生成 SQL 语句。

  • 提高代码的可读性和可维护性;
  • 简化了与数据库的交互
  • 提高了开发效率
  • 可以减少 SQL 注入等安全问题发生的可能性。(还有参数化和过滤输入也能防止SQL注入)

缺点:

  • 性能问题:ORM 工具可能引入额外的开销,导致性能下降;
  • 局限性:ORM 工具可能不适用于所有的数据库操作。

gorm - 针对 Go 语言的 ORM 框架

可以将 Go 语言中的结构体映射到关系型数据库中的表格,从而简化了与数据库的交互

type User struct {
    
    
    ID        uint   `gorm:"primary_key"`
    Name      string `gorm:"type:varchar(100);unique_index"`
    Email     string `gorm:"type:varchar(100);unique_index"`
    Password  string `gorm:"type:varchar(100)"`
    CreatedAt time.Time
    UpdatedAt time.Time
}
// 创建新用户
user := User{
    
    Name: "Tom", Email: "[email protected]", Password: "123456"}
db.Create(&user)

// 查询用户
var users []User
db.Find(&users)
for _, user := range users {
    
    
    fmt.Println(user.Name, user.Email)
}

// 更新用户信息
var user User
db.First(&user, 1)
user.Name = "Jerry"
db.Save(&user)

// 删除用户
var user User
db.First(&user, 1)
db.Delete(&user)

在上面的代码中,我们使用了 GORM 中的一些 API,例如 Create()、Find()、First()、Save() 和 Delete() 等。这些 API 可以帮助我们进行数据库操作,而不需要直接编写 SQL 语句。

猜你喜欢

转载自blog.csdn.net/csxylrf/article/details/130457463