最も簡易的なやり方で、GO言語使用時にMYSQLかららデータを取得する手順はメモしておく
事前準備
・XAMPPをインストールして、ローカル環境でMYSQLを立ち上げ、『User』というテーブルを作成しておく
※カラムは『Name(名前)』『Age(年齢)』『Sex(性別)』『Deleted_flag(削除フラグ)』とかにしておく
・go(バージョンは1.22.2)をインストールしておく
ファイル構成
sampleapp/
├ go.mod
├ main.go
※go.modは下記コマンドで生成できる
$ go mod init sampleapp(任意の文字列)
実行手順
以下のコマンドを実行して、mysql driverをインストールする
※go.modファイルがないとコマンド実行時にエラーになった
$ go get -u github.com/go-sql-driver/mysql
go: added filippo.io/edwards25519 v1.1.0
go: added github.com/go-sql-driver/mysql v1.8.1
go.modファイルが最終的に以下のようになる
module sampleapp
go 1.22.2
require (
filippo.io/edwards25519 v1.1.0 // indirect
github.com/go-sql-driver/mysql v1.8.1 // indirect
)
main.goに以下の記載を行う
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// MySQL データベースへの接続文字列
db, err := sql.Open("mysql", "root@tcp(localhost:3306)/gotest")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// データベースへの接続をテストする
err = db.Ping()
if err != nil {
log.Fatal(err)
}
//log.Println("Connected to MySQL database!")
rows, err := db.Query("SELECT * FROM user")
defer rows.Close()
if err != nil {
panic(err.Error())
}
for rows.Next() {
var Name string
var Age int
var Sex int
var Deleted_flag bool
if err := rows.Scan(&Name, &Age, &Sex, &Deleted_flag); err != nil {
panic(err.Error())
}
fmt.Println(Name, Age, Sex)
}
}
※mysqlはrootユーザーで接続しにいっている(PWは設定しない)
PWを設定しているユーザーの場合は、下記の記載方法になる
sql.Open("mysql", "[ユーザー名]:[パスワード]@tcp(localhost:3306)/[データベース名]")