GORM连接数据库 | 青训营

48 阅读2分钟

1、什么是GORM

  GORM是一个强大的Go编程语言中的ORM(对象关系映射)库。ORM是一种技术,它将数据库表中的数据映射到面向对象的模型中,从而简化了数据库操作。

2、GORM的特点

  • 简单易用。gorm提供了简洁而直观的API,使得操作数据库变得非常容易。无论是创建,读取,更新还是删除数据,都可以通过简单的方法调用实现。
  • 支持多种数据库。gorm支持多种常见的数据库系统,包括MySQL,PostagreSQL,SQLite等。这使得开发者可以在不同的项目中使用不同的数据库系统,无须更改代码。
  • 自动迁移。gorm具有强大的自动迁移功能,可以根据定义的模型自动创建,修改数据库表结构。这简化了数据库结构的管理,减少了手动处理数据库迁移的工作量。
  • 事务支持。gorm支持事务操作,保证了数据库操作的原子性和一致性。在复杂的业务逻辑中,事务可以确保一系列操作要么全部成功,要么全部回滚,避免了数据不一致的问题。
  • 强大的查询功能。gorm提供了丰富的查询功能,可以根据条件过滤数据,排序结果,限制返回的记录数等。开发者可以轻松地编写复杂的查询语句,满足各种业务需求。

3、简单使用方面

  1. 导入包
import(
"gorm.io/driver/mysql"
"gorm.io/gorm"
}
  1. 连接数据库
func main() {
dsn := "user:password@tcp(127.0.0.1:3306)dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err :=gorm.Open(mysql.Open(dsn),&gorm.Config{})
if err != nil {
panic("无法连接数据库")
}
defer db.Close()
}//其中user,password和dbname为你实际使用的数据库凭据和名称
  1. 定义实体结构
type User struct {
gorm.Model
Name string
Email string
}
  1. 创建表和迁移
func main() {
db.AutoMigrate(&User{})
}
func createUser(db *gorm.DB, name, email string) {
user := User{Name: name, Email: email}
db.Create(&user)
}
func deleteUser(db *gorm.DB, id uint) erroe {
result := db.Delete(&User{}, id)
return result.Error
}
func updateUserEmail(db *gorm.DB, id uint, email string) error {
user, err := getUserByID(db, id)
if err != nil {
return err
}
user.Email = email
result := db.Save(&user)
return result.Error
}
func getUserByID(db *gorm.DB, id uint) (User, error) {
var user User
result := db.First(&user, id)
if result.Error != nil {
return user, result.Error
}
return user, nil
}