You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
594 B
Go
24 lines
594 B
Go
|
9 months ago
|
package mydb
|
||
|
|
|
||
|
|
import (
|
||
|
|
"database/sql"
|
||
|
|
"fmt"
|
||
|
|
"time"
|
||
|
|
)
|
||
|
|
|
||
|
|
type ManageDb struct {
|
||
|
|
Name string
|
||
|
|
Db *sql.DB
|
||
|
|
}
|
||
|
|
|
||
|
|
func NewDatabase(dbName, user, password, host string, port int) (*ManageDb, error) {
|
||
|
|
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", user, password, host, port, dbName)
|
||
|
|
db, err := sql.Open("mysql", dsn)
|
||
|
|
db.SetConnMaxLifetime(time.Minute * 5) // 连接最大生命周期
|
||
|
|
db.SetMaxOpenConns(50) // 最大连接数
|
||
|
|
db.SetMaxIdleConns(10) // 最大空闲连接数
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
return &ManageDb{Name: dbName, Db: db}, nil
|
||
|
|
}
|