今天使用Gin作为orm框架完成增删查改
目标- MySQL安装
- GORM的简单示例
windows
跳过,直接下载
解压文件
添加环境变量
在安装目录新建my.ini文件
输入以下内容,注意替换为自己的安装路径
[mysqld]
basedir=E:\Installation\mysql-8.0.21-winx64\
datadir=E:\Installation\mysql-8.0.21-winx64\data\
复制代码
管理员权限运行cmd
执行mysqld -install
mysqld -install
复制代码
初始化数据文件
mysqld --initialize-insecure --user=mysql
复制代码
启动mysql服务
net start mysql
复制代码
安装可视化工具MySQL Workbench
next->next->install
密码为空
创建blog库
GORM的引入与使用下载GORM及mysql驱动
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql
复制代码
新增DbService连接到MySQL
package DbService
import (
"golang-blog/Model/Entity"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
var Db *gorm.DB
func ConnectDb() {
var (
err error
)
Db, err = gorm.Open(mysql.Open("root:@tcp(127.0.0.1:3306)/blog?charset=utf8&parseTime=True&loc=Local"), &gorm.Config{})
if err != nil {
panic(err)
}
// 自动生成表结构
dbErr := Db.AutoMigrate(&Entity.UserEntity{})
if dbErr != nil {
println(err)
}
}
复制代码
新增实体UserEntity
package Entity
import "gorm.io/gorm"
type UserEntity struct {
gorm.Model
Age int `form:"age"`
Password string `form:"password"`
LoginName string `form:"loginName"`
NickName string `form:"nickName"`
}
func (UserEntity) TableName() string {
return "User"
}
复制代码
新增UserService
package UserService
import (
"golang-blog/Model/Entity"
"golang-blog/Service/DbService"
)
func ByLoginNameGetUser(loginName string) Entity.UserEntity {
var (
user Entity.UserEntity
)
DbService.Db.Where(&Entity.UserEntity{LoginName: loginName}).First(&user)
return user
}
func SignIn(user Entity.UserEntity) string {
user.Id = "123"
DbService.Db.Create(&user)
return user.Id
}
func Update(user Entity.UserEntity) {
DbService.Db.Model(&Entity.UserEntity{}).Where(&Entity.UserEntity{Id: user.Id}).Updates(user)
}
func Delete(userId string) {
DbService.Db.Delete(&Entity.UserEntity{}, userId)
}
复制代码
main调用DbService.ConnectDb
func main() {
router := gin.Default()
DbService.ConnectDb()
Routers.Init(router)
}
复制代码