iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
Modern Web

起步Go!Let's Go!系列 第 25

[ Day 25 ] Go 資料庫:建立和管理資料庫連接的指南

  • 分享至 

  • xImage
  •  

在現代的軟體開發中,與資料庫的交互是一個常見的任務。Go 提供了豐富的資料庫相關套件,使得與各種資料庫系統的連接變得相對簡單。今天將介紹如何在 Go 中簡單地建立和管理資料庫連接。

選擇適當的資料庫

Go 支援多種資料庫系統,每一種都有其優勢和適用場景。以下是一些常見的 Go 資料庫套件:
database/sql 這個套件是 Go 的標準套件,提供了一個通用的 SQL 接口。你可以使用這個套件連接任何支援 SQL 的資料庫,但它本身並不提供具體的資料庫驅動程式,所以這部分需要你自己去安裝你所需的資料庫驅動程式。

  1. SQL 資料庫驅動程式: Go 社群開發了許多支援不同 SQL 資料庫的驅動程式,例如 github.com/go-sql-driver/mysql、github.com/lib/pqPostgreSQL 的驅動程式)等。
  2. NoSQL 資料庫套件: 如果你使用 NoSQL 資料庫,比如 MongoDB,Go 也有相應的套件,例如 github.com/mongodb/mongo-go-driver

選擇適當的套件取決於你的項目需求和使用的資料庫類型。

連接 SQLite 資料庫

使用 github.com/mattn/go-sqlite3 套件可以方便地與 SQLite 資料庫進行交互。首先,你需要使用以下指令安裝套件:

go get -u github.com/mattn/go-sqlite3

接著,輸入以下的程式碼:

package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/mattn/go-sqlite3"
)

func main() {
	// 開啟 SQLite 資料庫
	db, err := sql.Open("sqlite3", "test.db")
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	// 確認與資料庫的連接是否正常
	err = db.Ping()
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("Connected to SQLite database!")
}

接著,在終端機輸入 go build,並且執行:

輸出結果
Connected to SQLite database!

連接 MySQL 資料庫

使用 github.com/go-sql-driver/mysql 套件可以實現與 MySQL 資料庫的連接。首先,使用以下指令安裝套件:

go get -u github.com/go-sql-driver/mysql

接下來,可以使用以下代碼建立到 MySQL 資料庫的連接:

package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/go-sql-driver/mysql"
)

func main() {
	// 設定 MySQL 連接參數
	dsn := "user:password@tcp(localhost:3306)/dbname"

	// 開啟 MySQL 資料庫
	db, err := sql.Open("mysql", dsn)
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	// 確認與資料庫的連接是否正常
	err = db.Ping()
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("Connected to MySQL database!")
}

接著,在終端機輸入 go build,並且執行:

輸出結果
Connected to MySQL database!
請將 userpasswordlocalhost:3306dbname 替換為實際的 MySQL 連接參數。

連接 PostgreSQL 資料庫

使用 github.com/lib/pq 套件可以實現與 PostgreSQL 資料庫的連接。首先,使用以下指令安裝套件:

go get -u github.com/lib/pq

接下來,可以使用以下代碼建立到 PostgreSQL 資料庫的連接:

package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/lib/pq"
)

func main() {
	// 設定 PostgreSQL 連接參數
	dsn := "user=user dbname=test sslmode=disable"

	// 開啟 PostgreSQL 資料庫
	db, err := sql.Open("postgres", dsn)
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	// 確認與資料庫的連接是否正常
	err = db.Ping()
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("Connected to PostgreSQL database!")
}

接著,在終端機輸入 go build,並且執行:

輸出結果
Connected to PostgreSQL database!

請將 user、dbname 替換為實際的 PostgreSQL 連接參數。

這樣,你就成功建立了與 SQLite、MySQL 和 PostgreSQL 資料庫的連接。在實際應用中,可以根據項目需求進行進一步的配置和操作。


上一篇
[ Day 24 ] Go 路由:尋找正確的道路
下一篇
[ Day 26 ] Go 題外話:Goroutine 和 Channel
系列文
起步Go!Let's Go!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言