|
- package models
-
- import (
- "fmt"
- "os"
- "time"
-
- "xorm.io/xorm"
- "xorm.io/xorm/log"
-
- "github.com/toolkits/pkg/logger"
- )
-
- var DB *xorm.Engine
-
- type MysqlSection struct {
- Addr string `yaml:"addr"`
- Max int `yaml:"max"`
- Idle int `yaml:"idle"`
- Debug bool `yaml:"debug"`
- }
-
- var MySQL MysqlSection
-
- func InitMySQL(MySQL MysqlSection) {
- conf := MySQL
-
- db, err := xorm.NewEngine("mysql", conf.Addr)
- if err != nil {
- fmt.Printf("cannot connect mysql[%s]: %v", conf.Addr, err)
- os.Exit(1)
- }
-
- db.SetMaxIdleConns(conf.Idle)
- db.SetMaxOpenConns(conf.Max)
- db.SetConnMaxLifetime(time.Hour)
- db.ShowSQL(conf.Debug)
- db.Logger().SetLevel(log.LOG_INFO)
- DB = db
- }
-
- func DBInsertOne(bean interface{}) error {
- _, err := DB.InsertOne(bean)
- if err != nil {
- logger.Errorf("mysql.error: insert fail: %v, to insert object: %+v", err, bean)
- return internalServerError
- }
-
- return nil
- }
|