Sie sollten bereits den Namen des Datenbanktreibers kennen, weil sein durch den Parameter, den Sie mit dem dbstr
Variable identifiziert dargestellt.
db, err := sql.Open("postgres", "user= ... ")
if err != nil {
log.Fatal(err)
}
db.Driver()
korrekt liefert die zugrunde liegenden Treiber im Einsatz, aber Sie formatieren sie als string
(wegen %s
). Wenn Sie %s
mit %T
ändern, werden Sie sehen, dass es richtig die Art druckt:
log.Printf("%T\n", db.Driver())
Zum Beispiel, wenn Sie github.com/lib/pq
verwenden, ist der Ausgang *pq.drv
. Dies ist das gleiche für die Verwendung des reflect
Pakets:
log.Printf("%s\n", reflect.TypeOf(db.Driver()))
Es kann unpraktisch sein, diesen Wert zu verwenden, für die Durchführung bedingte Ausführungen. Darüber hinaus gibt die Schnittstelle Driver
keine Möglichkeit an, die spezifischen Treiberinformationen abzurufen, mit Ausnahme der Open()
-Funktion.
Wenn Sie bestimmte Anforderungen haben, können Sie entweder den beim Öffnen der Verbindung übergebenen Treibernamen verwenden oder spezifische Treiber erstellen, die an die ursprünglichen delegieren und mit Ihrer benutzerdefinierten Logik umgehen.