golangでMySQLに接続

新しい言語の勉強始めたら最初は掲示板を作る、っていうのが自分のなかでパターン化してるのでそれに向けてまずはgolangからMySQLにつないでみた。ORM使えばこのへんは意識しないでいいんだろうけど、まあ触っておいて損はしないでしょ。

ドライバはgo-sql-driver/mysql使いました。インストールは

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

だけ。GOPATHが通ってないとめんどくさい。最初それでそこそこの時間溶かした。

package main

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

func main() {

	var pub_date string
	var mod_date string

	db, err := sql.Open("mysql", "user:passwd@/some_db")
	if err != nil {
		os.Exit(1)
	}

	rows, err := db.Query("select pub_date, mod_date from some_table;")
	if err != nil {
		fmt.Println("ERROR")
		os.Exit(1)
	}

	for rows.Next() {
		rows.Scan(&pub_date, &mod_date)
		fmt.Println(pub_date, mod_date)
	}
}

取ってきたフィールドが日付型なのは特に意味は無いです。golangには日付型が見当たらなかったのでどうなんのかなー、って。rowは構造体にしてそれを内包したmapを返却するようにしてラップすればいいのかな。