我正在爲Go數據庫(Postgres和Mysql)編寫一個測試程序。我對包的「_」選項瞭解不多,但是我正在使用它(請參見下文)。如何使用多個驅動程序編譯Go數據庫/ sql程序?
我想要做的就是編譯一次,爲一個RDBMS和多個RDBMS使用多個sql驅動程序,並在運行該程序時選擇使用哪個驅動程序和RDBMS。我不確定這是否可能。目前我使用一個Postgres和一個Mysql驅動程序進行編譯,然後選擇在運行時使用哪一個(Postgres/Mysql)。這工作正常,但我需要記住哪個驅動程序編譯。能夠用一個RDBMS的多個驅動程序進行編譯,然後在運行時選擇使用哪一個將是一件好事。我想這是不可能的。或者,能夠在編譯時選擇使用哪些驅動程序並在運行時知道正在使用哪些驅動程序將是一件好事。沒有這些設施之一,可以測試例如。 Postgres,並認爲他們使用一個驅動程序時,實際上該程序已與另一個驅動程序編譯。
是否有可能有編譯器選項來選擇特定的驅動程序,然後在運行時知道哪個驅動程序正在使用?另一種方法顯然是編輯程序來表明這一點。
進口的一個例子如下:
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
////_ "github.com/lib/pq"
_ "github.com/lxn/go-pgsql"
........
謝謝,我會研究你的答案,看看它是否解決了它可能的「問題」,但我可以更清楚。我沒有問題編譯與2個不同的驅動程序Postgres/Mysql。在運行時,我提示輸入Mysql或Postgresql,並且全部顯示工作正常。我想你也已經向「導入」解釋了「_」前綴。我想用任何數量的「數據庫/ sql」庫(例如_「github.com/lib/pq」,_「github.com/lxn/go-pgsql」和Mysql)進行編譯,並且在運行時如果(例如)Postgres被選中,也允許在運行時選擇驅動程序(lib/pq或lxn或任何其他)。 –