【初心者向け】Go MySQL接続の方法|database/sqlで始めるDB開発入門

プログラム

Go と MySQL を組み合わせることで、高速なWebアプリやAPIを開発できます。
Goでは標準ライブラリ database/sql を使ってMySQLへ接続するのが基本です。

本記事では、GoでMySQLへ接続する方法を「導入・SQL実行・実務でのポイント」まで初心者向けに解説します。


GoでMySQL接続する流れ

基本の流れ👇

  1. ドライバ導入
  2. DB接続
  3. Ping確認
  4. SQL実行
  5. Close処理

MySQLドライバを導入

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

基本の接続コード

package main

import (
"database/sql"
"log"

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

func main() {

db, err := sql.Open(
"mysql",
"user:password@tcp(localhost:3306)/sample",
)

if err != nil {
log.Fatal(err)
}

defer db.Close()

err = db.Ping()

if err != nil {
log.Fatal(err)
}

log.Println("接続成功")
}

SELECT実行

rows, err := db.Query(
"SELECT id, name FROM users",
)

INSERT実行

_, err := db.Exec(
"INSERT INTO users(name) VALUES(?)",
"Tomoya",
)

UPDATE実行

_, err := db.Exec(
"UPDATE users SET name=? WHERE id=?",
"Taro",
1,
)

DELETE実行

_, err := db.Exec(
"DELETE FROM users WHERE id=?",
1,
)

実務で重要なポイント

✔ defer Close

defer db.Close()

✔ SQLインジェクション対策

db.Query(
"SELECT * FROM users WHERE id=?",
id,
)

👉 プレースホルダ利用


✔ コネクション管理

db.SetMaxOpenConns(10)

ORM(GORM)との違い

GORM

項目SQLORM
柔軟性
学習コスト
実務性能

実務での応用

  • API開発
  • 管理画面
  • ECサイト
  • SaaS開発


よくある失敗

❌ Close忘れ
❌ SQL直書き乱立
❌ エラーチェック不足


ベストプラクティス

  • Ping確認
  • Prepare利用
  • Connection Pool管理
  • ORMとの使い分け

💡 結論

👉
「Go×MySQLは高速バックエンド開発の王道構成」

コメント

タイトルとURLをコピーしました