
golangの環境を整えてmysqlに接続する
2016.06.08
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
丹内です。goからmysqlに接続するHello Worldをやってみました。
環境構築
Mac OS X 10.11.15を前提にします。まずはgoコマンドを使えるようにします。あわせてGOPATHの設定をします。
$ brew install go $ go version go version go1.6.2 darwin/amd64 $ echo echo "export GOPATH=~/.go" >> ~/.zshrc $ exec $SHELL -l $ mkdir .go; cd .go
次に、atomからの開発環境を整えます。こちらのブログを参考にオススメパッケージを入れます。
$ go get -v github.com/alecthomas/gometalinter $ bin/gometalinter --install --update $ go get -v golang.org/x/tools/cmd/gorename $ go get -v github.com/nsf/gocode $ go get -v github.com/rogpeppe/godef $ go get -v golang.org/x/tools/cmd/oracle
そしてatomのプラグインも入れます。
$ apm install autocomplete-plus go-plus
サンプルデータ
mysqlで以下のようなデータを入れておきます。
$ mysql -uroot mysql> create database gosample; mysql> use gosample; mysql> desc users; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | mediumint(9) | NO | PRI | NULL | auto_increment | | name | char(10) | NO | | NULL | | +-------+--------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec) mysql> insert into users ( name ) values ( 'tannai' ); Query OK, 1 row affected (0.01 sec) mysql> select * from users; +----+--------+ | id | name | +----+--------+ | 1 | tannai | +----+--------+ 1 row in set (0.00 sec)
コーディング
mysqlのデータをSELECTして出力するプログラムを書きます。
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "root@/gosample")
if err != nil {
panic(err.Error())
}
defer db.Close()
rows, err := db.Query("SELECT * FROM users")
defer rows.Close()
if err != nil {
panic(err.Error())
}
for rows.Next() {
var id int
var name string
if err := rows.Scan(&id, &name); err != nil {
panic(err.Error())
}
fmt.Println(id, name)
}
}
実行してみます。
$ go run main.go 1 tannai
コンパイルして実行してみます。
$ ls main.go $ go build main.go $ ls main main.go $ ./main 1 tannai







