package driver import ( "fmt" "github.com/jmoiron/sqlx" _ "github.com/sijms/go-ora/v2" ) type OracleDriver struct{} func (d *OracleDriver) Name() string { return "oracle" } func (d *OracleDriver) BuildDSN(config DBConfig) string { return fmt.Sprintf("oracle://%s:%s@%s:%d/%s", config.Username, config.Password, config.Host, config.Port, config.Database) } func (d *OracleDriver) Open(config DBConfig) (*sqlx.DB, error) { dsn := d.BuildDSN(config) db, err := sqlx.Open("oracle", 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(&OracleDriver{}) }