aqi/config/config_sqlserver.go

36 lines
1.1 KiB
Go
Raw Permalink Normal View History

2024-06-18 18:08:39 +08:00
package config
import (
"fmt"
"net/url"
"time"
)
type SqlServer struct {
Host string `yaml:"host"`
Port int `yaml:"port"`
User string `yaml:"user"`
Pwd string `yaml:"pwd"`
Database string `yaml:"database"`
Prefix string `yaml:"prefix"`
Encrypt string `yaml:"encrypt"`
LogLevel int `yaml:"logLevel"`
TrustServerCertificate string `yaml:"trustServerCertificate"`
Idle int `yaml:"idle"`
IdleTime time.Duration `yaml:"idleTime"`
MaxLifetime time.Duration `yaml:"maxLifetime"` // Maximum time a connection can be reused
MaxOpen int `yaml:"maxOpen"`
}
func (m *SqlServer) GetDsn() string {
return fmt.Sprintf("sqlserver://%s:%s@%s:%d?database=%s&encrypt=%s&trustServerCertificate=%s",
m.User,
url.QueryEscape(m.Pwd),
m.Host,
m.Port,
m.Database,
m.Encrypt,
m.TrustServerCertificate,
)
}