初始化项目
首先建立一个文件夹在文件夹下面建一个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 modelsimport ("gorm.io/gorm"
)type UserBasic struct {gorm.ModelName stringPassWord stringPhone stringEmail stringIdentiy stringClientIp stringClientPort stringLoginTime stringHeartbeatTime uint64LogOutTime uint64IsLoginout boolDeviceInfo string
}func (table *UserBasic) TableName() string {return "user_basic"
}
package mainimport ("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")}// 迁移 schemadb.AutoMigrate(&models.UserBasic{})// createuser := &models.UserBasic{}user.Name = "小哪吒"db.Create(user)// readfmt.Println(db, db.First(user))// updatadb.Model(user).Update("PassWord", "1234")
}
拆分gin路由
拆分成router 和main 和 service三个包进行配置
main.go
package mainimport ("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 serviceimport "github.com/gin-gonic/gin"func GetIndex(c *gin.Context) {c.JSON(200, gin.H{"message": "welcome",})
}
router/app.go文件
package routerimport ("ginchat/service""github.com/gin-gonic/gin"
)func Router() *gin.Engine {r := gin.Default()r.GET("/index", service.GetIndex)return r
}
基本框架已搭建完成