初始化项目
首先建立一个文件夹在文件夹下面建一个main.go文件
执行初始化命令行
go mod init page // page 为自己的项目名称
go mod tidy
安装框架
go get gorm.io/gorm // gorm
go get gorm.io/driver/mysql // 这里是用的sql数据库
go get -u github.com/gin-gonic/gin // 这里用的是gin框架
搭建基本目录
common // 公用方法
config // 配置
models // 方法包
router // 请求路由包
service //
sql // 数据库包
test // 测试包
go.mod // 架包
go.sum // 产生的架包
main.go // 入口文件
链接数据库
这里先在测试包里连接 并且 在models包中建用户类
package models
import (
"gorm.io/gorm"
)
type UserBasic struct {
gorm.Model
Name string
PassWord string
Phone string
Email string
Identiy string
ClientIp string
ClientPort string
LoginTime string
HeartbeatTime uint64
LogOutTime uint64
IsLoginout bool
DeviceInfo string
}
func (table *UserBasic) TableName() string {
return "user_basic"
}
package main
import (
"fmt"
"ginchat/models"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func main() {
db, err := gorm.Open(mysql.Open("root:1234@tcp(127.0.0.1:3306)/ginchat?charset=utf8mb4&parseTime=True&loc=Local"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// 迁移 schema
db.AutoMigrate(&models.UserBasic{})
// create
user := &models.UserBasic{}
user.Name = "小哪吒"
db.Create(user)
// read
fmt.Println(db, db.First(user))
// updata
db.Model(user).Update("PassWord", "1234")
}
拆分gin路由
拆分成router 和main 和 service三个包进行配置
main.go
package main
import (
"ginchat/router"
)
func main() {
r := router.Router()
r.Run(":8081") // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
service/index.go文件
package service
import "github.com/gin-gonic/gin"
func GetIndex(c *gin.Context) {
c.JSON(200, gin.H{
"message": "welcome",
})
}
router/app.go文件
package router
import (
"ginchat/service"
"github.com/gin-gonic/gin"
)
func Router() *gin.Engine {
r := gin.Default()
r.GET("/index", service.GetIndex)
return r
}
基本框架已搭建完成