Go Gorm 操作数据库
Go/Gorm 操作 Postgres
虽然go提供了database/sql包来操作数据库,但是如果有个ORM的包,可以直接操作model来操作数据库,就像node里面的sequelize,是不是 也是挺好的。Gorm就实现了这个功能,这个包目前是github上star数最多的go orm包,包括中文资料,对小伙伴们是相当友好了。
其实使用上,官方文档是非常全了,基本上傻瓜教程。这只是简单说明一下。
package models
import (
"fmt"
"time"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/postgres"
)
var DB *gorm.DB
func ConnectDataBase() {
database, err := gorm.Open("postgres", "host=localhost port=54320 user=postgres dbname=timesheet password=123456789 sslmode=disable")
if err != nil {
fmt.Println(err)
panic("Failed to connect to database!")
}
// set up schema
gorm.DefaultTableNameHandler = func(db *gorm.DB, defaultTableName string) string {
return "timesheet." + defaultTableName
}
database.AutoMigrate(&User{}, &TimeSheet{})
DB = database
DB.DB().SetMaxIdleConns(5)
DB.DB().SetMaxOpenConns(50)
DB.DB().SetConnMaxLifetime(time.Hour)
}
这代码可以连接到postgres数据库,同时提供一个DB来供后续使用,记得
defer models.DB.Close()
来关闭
其实有了这个变量DB,你就可以操作,可以说基本上全部的,数据库操作了。
看文档吧