從 Golang 中的函數內存取資料庫連線
在 Golang 中,資料庫操作通常從開啟到資料庫的連線開始。但是,在使用需要資料庫互動的函數時,通常需要引用開啟的連接。
問題:
考慮以下場景:
在這個例子中,main函數打開一個資料庫連接,用db表示。但是,addRow 函數無法直接存取 db,因為它是在 main 函數之外定義的。
解決方案:
有幾種方法可以處理這種情況:
全域存取:
透過在任何函數外部聲明db 變數使其成為全域變量,例如:
此方法允許內部的所有函數存取db 變數的相同套件。但是,不建議長時間運行的應用程式使用全域變量,因為全域變數可能會導致資源洩漏和意外行為。
參數傳遞:
將db 變數作為參數傳遞添加行函數:
此方法提供了對資料庫連接範圍的更多重控制,並允許更好的依賴注入。
Struct 方法:
另一個選擇是將addRow 定義為儲存資料庫連接的結構體的方法:
這種方法封裝了資料庫連接並提供了一種更結構化的存取它的方式。
以上是如何從 Golang 函數內存取資料庫連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!