Go言語 – 18.MySQLへの接続

2019-03-05Go言語

MySQLへの接続

MySQLを使用するということで、
接続用のパッケージがあります。
今回は、「github.com/go-sql-driver/mysql」を使用してDBへの接続を試みます。

接続方法

package main

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

func main() {
    db, err := sql.Open("mysql", "ユーザ:パスワード@/DB名")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()
}

これだけで接続ができます。

Select

次は基本的なSelect文の発行を行います。

rows, err := db.Query("SELECT * FROM talbe") // 
if err != nil {
  panic(err.Error())
}

for rows.Next() {
  var item1 string
  var item2 string
  // カラム値の取得
  err := rows.Scan( &item1 , &item2 )
  if err != nil {
    panic(err)
  }
  // 取得結果
  fmt.Printf( &item1 , &item2 )
}

Insert

検出ができれば、Insert、Delete、Updateです。
DML文の使用方法は、基本同じなので、Insert文でサンプルを作ります。


// insert
rows, err := db.Prepare("INSERT INTO talbe(item1, item2) VALUES(?,?)")
if err != nil {
    log.Fatal(err)
}
rows.Exec("システム", "トラスト")

// エラー処理
if err != nil {
    if mysqlErr, ok := err.(*mysql.MySQLError); ok {
        log.Printf("Number: %d", mysqlErr.Number)
        log.Printf("Message: %s", mysqlErr.Message)
        log.Printf("Error(): %s", mysqlErr.Error())
    }
}

簡単ですが、基本的な動作です。