非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Go言語】MySQLに接続する方法

      2023/08/21

Go言語でMySQLに接続する方法です。以前、Pythonでの方法を紹介しましたが、ランタイム無しでマウスクリック一発で簡単に実行したいなと思いGo言語でトライした次第です。

データベースの準備

MySQLはXamppをローカルネットワーク内の別のPC( Ubuntu)で立ち上げています。とりあえず以下のようなテーブルを準備しました。Xamppの導入方法はこちらを参考にしてください。

 

SQLパッケージのインストール

MySQLをGoで使えるようにパッケージをインストールします。※その前にGitのインストールが必要です。

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

 

Go言語のソースコード

ソースコードがこちら。とりあえずテーブルの項目名一覧とSELECT句でデータを読み込むようになっています。

package main

import (
  "database/sql"
  "fmt"

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

type Items struct {
  ID string
  URL string
  TITLE string
  CATEGORY string
}

func main() {
  // データベースのハンドルを取得する
  db, err := sql.Open("mysql", "user:password@(192.168.10.102:3306)/dbname")
  if err != nil {
    fmt.Println(err.Error())
  }
  defer db.Close()

  rows, err := db.Query("SELECT * FROM bookmark")
  if err != nil {
    fmt.Println(err.Error())
  }
  defer rows.Close()

  //項目名取得
  colnames, err := rows.Columns()
  fmt.Println(colnames)

  //データの取得
  for rows.Next() {
    items := &Items{}
    err := rows.Scan(&items.ID, &items.URL, &items.TITLE, &items.CATEGORY)
    if err != nil {
      fmt.Println(err.Error())
    }
    fmt.Println(items.ID, items.URL, items.TITLE, items.CATEGORY)
  }
}
 

 

実行結果

実行結果はこちら。(ファイル名はmysql-go.goです)

$ go run mysql-go.go 
[ID URL TITLE CATEGORY]
A1 http://www.yahoo.co.jp/ Yahoo!Japan 検索
A2 https://www.google.co.jp/ Google 検索
A3 https://twitter.com/ Twitter SNS
A4 https://www.rakuten.co.jp/ 楽天 ショッピング
A5 https://www.amazon.co.jp/ Amazon ショッピング
 

 

スポンサーリンク

 - Go言語