【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 ショッピング
スポンサーリンク
