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 语句。