使用 GORM 连接 MySQL 8.0 数据库并实现增删改查操作| 青训营

263 阅读2分钟

这是我参与「第六届青训营」伴学笔记创作活动的第 4 天,今天学习了使用GORM,现在就我学习到的知识进行总结。

本期目录

  • GORM的配置与使用

GORM的基本配置

前期主要是完成MYSQL的配置,,这里就不多赘述了。除此之外还需要安装依赖:

这是安装MYSQL依赖go get -u gorm.io/driver/mysql

这是安装Gorm依赖go get -u gorm.io/gorm

GORM的基本使用

Gorm操作MySQL的步骤如下:

  1. 定义一个模型
  2. 连接数据库
  3. 操作数据库

定义模型

product表建立数据表

CREATE TABLE `product` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(50) DEFAULT NULL,
`price` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

导入连接MySQL的依赖包,这步很重要,如果没有导入的话很容易会导致运行不出来。

import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)

连接数据库

func main() {
   // 设置数据库连接信息
   dsn := "username: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("Failed to connect to database")
   }

   // 在这里执行数据库操作
}

操作数据库

本人以前是学JAVA的,也试过eclipse和mysql连接,但是自从学了go语言后发现go语言比java还要友好,因为go语言在实现增删改查的时候是不用手写sql代码的,具体例子如下:

插入数据

func createUser(db *gorm.DB, name, email string) {
   newUser := User{Name: name, Email: email}
   result := db.Create(&newUser)
   if result.Error != nil {
      panic("Failed to create user")
   }
}

查询数据

func getUsers(db *gorm.DB) []User {
   var users []User
   db.Find(&users)
   return users
}

更新数据

func updateUser(db *gorm.DB, id uint, newName, newEmail string) {
   var user User
   db.First(&user, id)
   user.Name = newName
   user.Email = newEmail
   db.Save(&user)
}

删除数据

func deleteUser(db *gorm.DB, id uint) {
   var user User
   db.First(&user, id)
   db.Delete(&user)
}

通过本期学习,我了解了gorm的基本使用方法,对比了以前学过的java语言,发现gorm的便捷,对今后的学习有很大的帮助。