一、安装好mysql和相关的GORM包
不多赘述
二、Goland配置Mysql数据库
- 右侧栏 -> Database -> +添加
-
选择MySQL
-
修改Name -> Comment(可选)
- 选择Mysql版本
- 填写数据库连接信息,填写数据库名:test, 选择数据库test
- 建立表users,添加三个字段
三、开始编写操作数据库的代码
3.1连接数据库
使用open语句
注意一下dsn 的各个参数的含义即可,需要自己进行替换:
root为用户名
123456为我设置的mysql的登录密码
test为我们要操作的数据库
3.2添加数据
使用create语句
3.3 查询数据
单个查询:定义一个变量,查询相关字段的值:相当于sql语句的简写
批量查询:直接查询表里面的所有数据
3.4对数据进行修改
直接对之前的变量进行复制即可
3.5 删除数据
使用delete语句,直接删除相关变量即可
整体代码如下:
package main
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type User struct {
ID int
Name string
Age int
}
func main() {
dsn := "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) //打开数据库连接
if err != nil {
panic(err)
}
println("success")
DB, _ := db.DB()
defer DB.Close() //在函数执行完成后关闭数据库句柄
//新增
rsOne := db.Create(&User{ID: 1, Name: "aaa", Age: 32})
if rsOne.RowsAffected > 0 {
fmt.Println("用户1创建成功")
}
rsTwo := db.Create(&User{ID: 2, Name: "bbb", Age: 33})
if rsTwo.RowsAffected > 0 {
fmt.Println("用户2创建成功")
}
//查询
var u1 User
db.Find(&u1, "id = ?", 1)
fmt.Println(u1)
//批量查询
var users []User
db.Find(&users)
fmt.Println(users)
//修改
u1.Name = "ccc"
u1.ID = 3
u1.Age = 34
rsSave := db.Save(u1)
if rsSave.RowsAffected > 0 {
fmt.Println("用户修改成功")
}
//修改后查询数据是否已经变化
db.Find(&u1, "id = ?", 4)
fmt.Println(u1)
//删除
rsDelete := db.Delete(u1)
if rsDelete.RowsAffected > 0 {
fmt.Println("用户删除成功")
}
//再次批量查询
var usersT []User
db.Find(&usersT)
fmt.Println(usersT)
}
运行结果如下:
数据库的数据如下: