Files
wow-item-generator/internal/pkg/db/mysql.go

44 lines
759 B
Go

package db
import (
"os"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type MySql struct {
client *sqlx.DB
}
type MySqlConfig struct {
Host string
User string
Password string
Database string
}
func ConnectMySql(config *MySqlConfig) (*MySql, error) {
if config == nil {
config = &MySqlConfig{
Host: os.Getenv("DB_HOST"),
User: os.Getenv("DB_USER"),
Password: os.Getenv("DB_PASSWORD"),
Database: os.Getenv("DB_NAME"),
}
}
connString := config.User + ":" + config.Password + "@tcp(" + config.Host + ")/" + config.Database
client, err := sqlx.Open("mysql", connString)
if err != nil {
return nil, err
}
return &MySql{client: client}, nil
}
func (db *MySql) Close() {
db.client.Close()
}