###Gin项目目录结构
├── gin
│ ├── Router
│ └── router.go
│ ├── Middlewares
│ └── corsMiddleware.go
│ ├── Controllers
│ └── testController.go
│ ├── Services
│ └── testService.go
│ ├── Models
│ └── testModel.go
│ ├── Databases
│ └── mysql.go
│ ├── Sessions
│ └── session.go
└── main.go
- 使用gorm访问数据库
- gin 为项目根目录
- main.go 为入口文件
- Router 为路由目录
- Middlewares 为中间件目录
- Controllers 为控制器目录(MVC)
- Services 为服务层目录,这里把DAO逻辑也写入其中,如果分开也可以
- Models 为模型目录
- Databases 为数据库初始化目录
- Sessions 为session初始化目录
- 文件 引用顺序 大致如下:
main.go(在main中关闭数据库) - router(Middlewares) - Controllers - Services(sessions) - Models - Databases
- Databases / mysql
package Mysql
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
"fmt"
)
var DB *gorm.DB
func init() {
var err error
DB, err = gorm.Open("mysql", "wuyu:MIDSUMMERfish0@/gin?charset=utf8&parseTime=True&loc=Local")
if err != nil {
fmt.Printf("mysql connect error %v", err)
}
if DB.Error != nil {
fmt.Printf("database error %v", DB.Error)
}
}
- Models / testModel.go
package Models
import (
"gin/Databases"
)
type Test struct {
Id int
Testcol string `gorm:"column:testcol"`
}
// 设置Test的表名为`test`
// func (Test) TableName() string {
// return "test"
// }
func (this *Test) Insert() (id int, err error) {
result