package driver import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx" ) type DorisDriver struct{} func (d *DorisDriver) Name() string { return "doris" } func (d *DorisDriver) BuildDSN(config DBConfig) string { return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", config.Username, config.Password, config.Host, config.Port, config.Database) } func (d *DorisDriver) Open(config DBConfig) (*sqlx.DB, error) { dsn := d.BuildDSN(config) db, err := sqlx.Open("mysql", 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(&DorisDriver{}) }