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

ORM是一种将对象模型与关系型数据库映射的技术,提供API简化数据库操作。GORM是Go语言的ORM框架,允许将结构体映射到数据库表格。文中展示了如何使用GORM进行创建、查询、更新和删除用户等操作,强调了ORM的便利性,同时也指出其可能的性能问题和局限性。

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: "tom@example.com", 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 语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值