使用 GORM(Go 的 ORM 库)连接数据库,并实现增删改查操作,把实现过程整理成文章;

56 阅读2分钟

要写出使用gorm库连接数据库的代码,可以按照以下步骤进行操作:

  1. 确保已经安装了gorm库。你可以使用以下命令来安装gorm:
go复制代码
	go get -u gorm.io/gorm
  1. 在你的Go代码中导入gorm库:
go复制代码
	import "gorm.io/gorm"
  1. 定义一个数据库连接配置结构体,其中包含了连接数据库所需的信息,例如数据库类型、主机、端口、用户名、密码、数据库名等。例如:
go复制代码
	type Config struct {  

	    DBType  string  

	    Host    string  

	    Port    string  

	    User    string  

	    Pass    string  

	    Name    string  

	    SSLMode string  

	}
  1. 在代码中创建一个数据库连接实例,并使用连接配置进行初始化。例如:
go复制代码
	func ConnectDB(config *Config) (*gorm.DB, error) {  

	    dsn := fmt.Sprintf(  

	        "%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",  

	        config.User,  

	        config.Pass,  

	        config.Host,  

	        config.Port,  

	        config.Name,  

	    )  

	    if config.SSLMode != "" {  

	        dsn += "&sslmode=" + config.SSLMode  

	    }  

	    db, err := gorm.Open(config.DBType, dsn)  

	    if err != nil {  

	        return nil, err  

	    }  

	    return db, nil  

	}
  1. 在代码中使用连接配置参数创建数据库连接,并调用ConnectDB函数。例如:
go复制代码
	func main() {  

	    config := &Config{  

	        DBType:  "mysql",  

	        Host:    "localhost",  

	        Port:    "3306",  

	        User:    "root",  

	        Pass:    "password",  

	        Name:    "mydatabase",  

	        SSLMode: "false",  

	    }  

	    db, err := ConnectDB(config)  

	    if err != nil {  

	        panic(err)  

	    }  

	    defer db.Close()  

	    // 在这里编写你的数据库操作代码,例如使用gorm进行数据查询、插入、更新等操作。  

	}

以上代码演示了如何使用gorm库连接MySQL数据库。你可以根据自己的需求修改连接配置结构体和ConnectDB函数来适应其他数据库类型。 当使用gorm库进行增删改查操作时,你需要定义一个结构体来表示数据库表中的数据,然后使用gorm的相关方法来进行操作。

以下是一个示例代码,展示了如何使用gorm库进行增删改查操作:

go复制代码
	package main  

	  

	import (  

	 "fmt"  

	 "gorm.io/driver/mysql"  

	 "gorm.io/gorm"  

	)  

	  

	// 定义一个结构体来表示数据库表中的数据  

	type User struct {  

	 ID   uint   `gorm:"primarykey"`  

	 Name string `gorm:"not null"`  

	 Age  uint   `gorm:"not null"`  

	}  

	  

	func main() {  

	 // 连接数据库  

	 dsn := "user:password@tcp(localhost:3306)/database?charset=utf8mb4&parseTime=True&loc=Local"  

	 db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})  

	 if err != nil {  

	 panic("连接数据库失败: " + err.Error())  

	 }  

	  

	 // 创建表(如果表不存在)  

	 err = db.AutoMigrate(&User{})  

	 if err != nil {  

	 panic("创建表失败: " + err.Error())  

	 }  

	  

	 // 插入数据(增加)  

	 user := User{Name: "John Doe", Age: 25}  

	 result := db.Create(&user)  

	 if result.Error != nil {  

	 panic("插入数据失败: " + result.Error.Error())  

	 }  

	 fmt.Println("插入成功,ID:", user.ID)  

	  

	 // 查询数据(查询)  

	 var users []User  

	 result = db.Find(&users)  

	 if result.Error != nil {  

	 panic("查询数据失败: " + result.Error.Error())  

	 }  

	 fmt.Println("查询结果:", users)  

	  

	 // 更新数据(修改)  

	 user.Age = 30  

	 result = db.Save(&user)  

	 if result.Error != nil {  

	 panic("更新数据失败: " + result.Error.Error())  

	 }  

	 fmt.Println("更新成功")  

	  

	 // 删除数据(删除)  

	 result = db.Delete(&user)  

	 if result.Error != nil {  

	 panic("删除数据失败: " + result.Error.Error())  

	 }  

	 fmt.Println("删除成功")  

	}

请注意,你需要根据自己的实际情况修改连接字符串(dsn)、数据库表名(User)、插入的数据(user)以及其他相关的信息。此外,你还需要安装适当的数据库驱动程序,例如gorm.io/driver/mysql用于MySQL数据库。