DriveLinked/pkg/dao/sqlx.go

44 lines
704 B
Go
Raw Permalink Normal View History

2022-04-03 12:30:50 +08:00
package dao
import (
"drive-linked/assets"
"github.com/jmoiron/sqlx"
_ "github.com/mattn/go-sqlite3"
"io/ioutil"
"time"
)
var DB *sqlx.DB
// 初始化数据库连接
func Conn() (err error) {
dsn := "file:drivelinked.db?cache=shared&mode=rwc"
DB, err = sqlx.Connect("sqlite3", dsn)
if err != nil {
return err
}
// 基本配置
DB.SetMaxIdleConns(20)
DB.SetMaxOpenConns(50)
DB.SetConnMaxLifetime(time.Second * 30)
return nil
}
// 初始化表
func InitTables() error {
sqlf, err := assets.SqlStat.Open("sql/mysql.sql")
defer sqlf.Close()
if err != nil {
return err
}
exec, err := ioutil.ReadAll(sqlf)
if err != nil {
return err
}
DB.MustExec(string(exec))
return nil
}