go 言語で mysql にアクセス

go

go でとりあえず mysql にアクセス

go 言語、最近始めましたが、Cとrubyの中間のような言語でいいですね。

rubyみたいな感じで C言語みたいに低レベルでアクセスできる、みたいな笑

とりあえず、最低限のコードで go から mysqlのデータを表示するコードです。

ローカルに users というテーブルがあり、
カラムに id, name があるという前提です。

db名等は各自の環境に合わせてください。

main.go

package main

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

// User data
type User struct {
	id   int
	name sql.NullString
}

func main() {
	var userName = "root"
	var password = "rootroot"
	var dbAddress = "127.0.0.1:3306"
	var dbName = "hogedb"

	dataSource := fmt.Sprintf("%s:%s@tcp(%s)/%s",
		userName, password, dbAddress, dbName,
	)

	db, err := sql.Open("mysql", dataSource)

	if err != nil {
		panic(err.Error())
	}

	defer db.Close()

	rows, err := db.Query("SELECT id, name FROM users")

	if err != nil {
		panic(err.Error())
	}

	defer rows.Close()

	for rows.Next() {
		var user User

		err := rows.Scan(&user.id, &user.name)

		if err != nil {
			panic(err.Error())
		}

		var userName = ""

		if user.name.Valid {
			userName = user.name.String
		}

		fmt.Println(user.id, userName)
	}

	err = rows.Err()

	if err != nil {
		panic(err.Error())
	}
}

go言語でおすすめ書籍は以下です。

タイトルとURLをコピーしました