前言
记录下go语言操作mysql数据库,选用gorm,gorm是一个流行的对象关系映射(ORM)库,用于简化与数据库的交互。
接入步骤
-
安装gorm:首先,你需要使用Go模块来安装gorm。在终端中运行以下命令:
go get -u gorm.io/gorm
-
选择数据库驱动:gorm本身是一个抽象层,需要使用特定数据库的驱动程序。选择适合你数据库的驱动并安装它。例如,如果你使用MySQL,可以运行:
go get -u gorm.io/driver/mysql
如果使用其他数据库,选择对应的驱动。
-
导入gorm和数据库驱动:在go代码中导入gorm和所选的数据库驱动。
package mainimport ("gorm.io/gorm""gorm.io/driver/mysql" )
-
连接数据库:使用gorm的
Open
函数连接到数据库。在你的代码中设置数据库连接字符串。dsn := "user:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil {panic("Failed to connect to database") }
-
定义模型:创建与数据库表对应的模型结构体。
type User struct {gorm.ModelUsername stringEmail string }
在这个例子中,
User
模型包含ID
、CreatedAt
、UpdatedAt
和DeletedAt
等gorm提供的标准模型字段。 -
迁移数据库:使用gorm的
AutoMigrate
方法创建表格。这会确保数据库中有你定义的模型对应的表格。err = db.AutoMigrate(&User{}) if err != nil {panic("Failed to migrate database") }
-
使用gorm进行CRUD操作:现在你可以使用gorm进行数据库操作,例如创建、查询、更新和删除记录。
// 创建记录 user := User{Username: "john_doe", Email: "john@example.com"} db.Create(&user)// 查询记录 var foundUser User db.First(&foundUser, "username = ?", "john_doe")// 更新记录 db.Model(&foundUser).Update("Email", "new_email@example.com")// 删除记录 db.Delete(&foundUser)
-
项目中可以参考下面代码:在model包中使用全局的db变量即可进行mysql操作
package modelimport ("fmt""log""time""gorm.io/driver/mysql""gorm.io/gorm""gorm.io/gorm/schema" )// 创建全局数据库连接对象 var db *gorm.DB// 模型/数据库连接对象 初始化 func init() {var (err errordbName, user, password, host string)dbName = "" //数据库名称user = "" //用户名password = "" //密码host = "" //连接地址db, err = gorm.Open(mysql.Open(fmt.Sprintf("%s:%s@tcp(%s)/%s? charset=utf8&parseTime=True&loc=Local",user,password,host,dbName)), &gorm.Config{NamingStrategy: schema.NamingStrategy{SingularTable: true,}})if err != nil {log.Println(err)}sqlDB, err := db.DB()if err != nil {log.Println(err)}sqlDB.SetMaxIdleConns(10)sqlDB.SetMaxOpenConns(100)sqlDB.SetConnMaxLifetime(time.Hour) }
这是一个基本的gorm集成和使用示例。根据你的实际需求,可能需要更复杂的查询、关联等操作,gorm提供了强大的功能来满足这些需求。可以查阅gorm文档以获取更详细的信息。