go言語 mysqlに接続してselectを実行する
go言語で、mysqlに接続してselectを実行するサンプルコードを記述してます。go言語のバージョンは1.14.6を使用してます。
環境
- OS windows 11 Home
- go 1.14.6
github.com/go-sql-driver/mysqlインストール
ライブラリ「github.com/go-sql-driver/mysql」を使用するのでない場合は、「go get」を使って追加しておきます。
go get -u github.com/go-sql-driver/mysql
サンプルコード
localhostにある「mysql」に接続して、以下のDB「foo」にあるテーブル「bar」にselect文を実行してみます。
テーブル「bar」
サンプルコードは、以下となります。
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
type Bar struct {
ID int
N string
}
func main() {
//sql.Open("mysql", "user:password@/dbname")
db, err := sql.Open("mysql", "testuser:password@tcp(localhost:3306)/foo")
if err != nil {
panic(err.Error())
}
defer db.Close()
rows, err := db.Query("SELECT * FROM bar")
if err != nil {
fmt.Println("データベース接続失敗")
panic(err.Error())
} else {
fmt.Println("データベース接続成功")
}
defer rows.Close()
for rows.Next() {
var bar Bar
err := rows.Scan(&bar.ID, &bar.N)
if err != nil {
panic(err.Error())
}
fmt.Println(bar.ID, bar.N)
}
err = rows.Err()
if err != nil {
panic(err.Error())
}
}
実行結果を見ると、取得できていることが確認できます。
1件だけ取得
1件だけ取得する場合は「QueryRow」を使用します。
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
type Bar struct {
ID int
N string
}
func main() {
//sql.Open("mysql", "user:password@/dbname")
db, err := sql.Open("mysql", "testuser:password@tcp(localhost:3306)/foo")
if err != nil {
panic(err.Error())
}
defer db.Close()
var bar Bar
err = db.QueryRow("SELECT * FROM bar WHERE id = ?", 2).Scan(&bar.ID, &bar.N)
if err != nil {
panic(err.Error())
}
fmt.Println(bar.ID, bar.N)
}
-
前の記事
windows10 scoopを使ってgo言語をインストールする 2022.01.06
-
次の記事
javascript sliceを使用して配列の最後の値を取得する 2022.01.07
コメントを書く