关于使用gorm连接数据库的各种姿势 | 青训营

66 阅读2分钟

在使用 GORM 连接数据库并实现增删改查操作时,我们需要进行以下步骤:

  1. 引入 GORM 库 首先需要在项目中引入 GORM 库,可以通过 go get 命令来引入,例如:
go get -u github.com/gormaz/gorm  
  1. 创建数据库连接 在项目中需要创建一个数据库连接,可以使用 GORM 提供的 NewDB 函数来创建,例如:
import (  
   "context"  
   "fmt"  
   "log"
   "gorm.io/gorm"  
)
var db *gorm.DB
func main() {  
   db = gorm.NewDB(&gorm.Config{  
       URL:     "postgres://user:password@host:port/database",  
       User:   "user",  
       Password: "password",  
       DB:    "database",  
       LogLevel: gorm.LogLevelDebug,  
   })
   if db.HasError() {  
       log.Fatal("Error connecting to database:", db.Error)  
   }
   // Your code here  
}

在上面的代码中,我们创建了一个 postgres 数据库连接,使用 URL、用户名、密码和数据库名称进行连接。 3. 创建模型 接下来,我们需要创建一个模型来描述我们要操作的数据。可以使用 GORM 提供的 NewModel 函数来创建,例如:

type User struct {  
   ID    uint  
   Name  string  
   Age   int  
}
var user User
func main() {  
   // Connect to the database  
   //...
   // Create a new User model  
   user = User{  
       ID:   1,  
       Name: "Alice",  
       Age:  25,  
   }
   // Save the User model to the database  
   db.Create(&user).Error  
}

在上面的代码中,我们创建了一个 User 模型,其中包括 ID、Name 和 Age 字段。然后,我们将这个模型保存到数据库中。 4. 查询数据 接下来,我们可以使用 GORM 提供的 Preload 函数来查询数据。例如,我们可以查询所有 User 模型的数据,例如:

func main() {  
   // Connect to the database  
   //...
   // Query all User models  
   var users []User  
   db.Preload("User").Find(&users).Error
   // Print the first User model  
   fmt.Printf("The first User is %+v\n", users[0])  
}

在上面的代码中,我们查询了所有 User 模型的数据,并将结果保存在 users 切片中。然后,我们打印了第一个 User 模型的数据。 5. 更新数据 接下来,我们可以使用 GORM 提供的 Update 函数来更新数据。例如,我们可以更新 User 模型的 Age 字段,例如:

func main() {  
   // Connect to the database  
   //...
   // Query the User model  
   var user User  
   db.Preload("User").Find(&user).Error
   // Update the User model  
   user.Age = 30  
   db.Update(&user).Error
   // Print the updated User model  
   fmt.Printf("The updated User is %+v\n", user)  
}

在上面的代码中,我们查询了 User 模型的数据,并将其保存在 user 变量中。然后,我们更新了 user 变量的 Age 字段,并将其保存到数据库中。最后,我们打印了更新后的 User 模型的数据。 6. 删除数据 最后,我们可以使用 GORM 提供的 Delete 函数来删除数据。例如,我们可以删除 User 模型的数据,例如:

func main() {  
   // Connect to the database  
   //...
   // Query the User model  
   var user User  
   db.Preload("User").Find(&user).Error
   // Delete the User model  
   db.Delete(&user).Error
   // Print the deleted User model  
   fmt.Printf("The deleted User is %+v\n", user)  
}

在上面的代码中,我们查询了 User 模型的数据,并将其保存在 user 变量中。然后,我们删除了 user 变量的数据,并将其从数据库中删除。最后,我们打印了删除后的 User 模型的数据。 通过以上