package drivers import ( "fmt" "github.com/jmoiron/sqlx" _ "github.com/microsoft/go-mssqldb" ) type SQLServerDriver struct{} func (d *SQLServerDriver) Name() string { return "sqlserver" } func (d *SQLServerDriver) BuildDSN(config DBConfig) string { return fmt.Sprintf("server=%s;port=%d;user id=%s;password=%s;database=%s;encrypt=disable", config.Host, config.Port, config.Username, config.Password, config.Database) } func (d *SQLServerDriver) Open(config DBConfig) (*sqlx.DB, error) { dsn := d.BuildDSN(config) db, err := sqlx.Open("sqlserver", dsn) if err != nil { return nil, err } // 使用公共的连接池配置函数 configureConnectionPool(db, config) // 测试连接 if err = db.Ping(); err != nil { return nil, err } return db, nil } func init() { Register(&SQLServerDriver{}) }