Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

oracle.go 759B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package driver
  2. import (
  3. "fmt"
  4. "github.com/jmoiron/sqlx"
  5. _ "github.com/sijms/go-ora/v2"
  6. )
  7. type OracleDriver struct{}
  8. func (d *OracleDriver) Name() string {
  9. return "oracle"
  10. }
  11. func (d *OracleDriver) BuildDSN(config DBConfig) string {
  12. return fmt.Sprintf("oracle://%s:%s@%s:%d/%s",
  13. config.Username,
  14. config.Password,
  15. config.Host,
  16. config.Port,
  17. config.Database)
  18. }
  19. func (d *OracleDriver) Open(config DBConfig) (*sqlx.DB, error) {
  20. dsn := d.BuildDSN(config)
  21. db, err := sqlx.Open("oracle", dsn)
  22. if err != nil {
  23. return nil, err
  24. }
  25. // 使用公共的连接池配置函数
  26. configureConnectionPool(db, config)
  27. // 测试连接
  28. if err = db.Ping(); err != nil {
  29. return nil, err
  30. }
  31. return db, nil
  32. }
  33. func init() {
  34. Register(&OracleDriver{})
  35. }