gorm是用来和mysql数据库建立连接的。在终端输入:
go get -u github.com/jinzhu/gorm
完了后在gin-demo下创建一个common的文件夹。在其中创建db.go来与数据库建立连接。如下代码所示
package common
import (
"fmt"
"github.com/jinzhu/gorm"
)
var DB *gorm.DB
func InitDB() *gorm.DB {
driverName := "mysql"
host := "localhost"
port := "3306"
username := "root"
password := "123456"
database := "gin-demo"
charset := "utf8"
args := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s&parseTime=true",
username,
password,
host,
port,
database,
charset)
db, err := gorm.Open(driverName, args)
if err != nil {
panic("连接数据库失败" + err.Error())
}
DB = db
return db
}
func GetDB() *gorm.DB {
return DB
}
然后在main.go如下写法:
package main
import (
"gin-demo/common"
"github.com/gin-gonic/gin"
"net/http"
)
func main(){
r := gin.Default()
common.InitDB()
//创建DB实例进行数据库操作
db := common.GetDB()
//延迟关闭数据库
defer db.Close();
r.GET("/ping",func(c *gin.Context){
c.JSON(http.StatusOK,gin.H{
"code":200,
"msg":"pong",
})
})
r.Run(":8888")
}
go run main.go
运行报错。
没有mysql的驱动,所以要执行下述代码引入mysql的驱动
go get -u github.com/go-sql-driver/mysql
然后在db.go的import中引入
package common
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
.......省略
然后执行过后得到:
上述的报错是mysql没有创建数据库。
创建数据后再启动。就没有错误了。此时数据库连接已经搭建好。