这是我参与「第六届青训营」伴学笔记创作活动的第 4 天,今天学习了使用GORM,现在就我学习到的知识进行总结。
本期目录
- GORM的配置与使用
GORM的基本配置
前期主要是完成MYSQL的配置,,这里就不多赘述了。除此之外还需要安装依赖:
这是安装MYSQL依赖go get -u gorm.io/driver/mysql
这是安装Gorm依赖go get -u gorm.io/gorm
GORM的基本使用
Gorm操作MySQL的步骤如下:
- 定义一个模型
- 连接数据库
- 操作数据库
定义模型
以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的便捷,对今后的学习有很大的帮助。