Database JUNKY

MySQL,MariaDBを中心としたブログです

GO Lang MysqlでテーブルをSELECTするSAMPLE

GO 言語 ・・・若干というか、全然わかっていないのですが、とりあえず動いたのでメモする なにぶん、プログラムを久しぶりに書いたので、細かいところは全然だめですが、次回何かに応用するときに自分でここ見ようというレベルのメモになりますので、至らない部分はお許しください

go

MySQLのDriverをインストールする

とりあえずMySQL/Go lang一式がインストールされていることを前提として・・・・

環境変数のセット

GOPATHについては、どこでもお好きなところに設定しておく

[code lang=text] export GOPATH=/usr/local/go/ export PATH=$PATH:/usr/local/go/bin [/code]

MySQLドライバのインストール

[code lang=text] $ sudo go get github.com/go-sql-driver/mysql [/code]

MySQL Driverを利用してSELECTのテストをする

とりあえず。ワードプレスのデータをためして見る

[code lang=text]

cat mysql_select.go

package main

import ( "database/sql" "fmt"

_ "github.com/go-sql-driver/mysql" )

func main() { db, err := sql.Open("mysql", "myuser:mypassword@/wp")

if err != nil { panic(err.Error()) } defer db.Close() // 関数がリターンする直前に呼び出される

rows, err := db.Query("SELECT ID,post_title FROM wp_posts") // if err != nil { panic(err.Error()) }

defer rows.Close()

for rows.Next() { var ID int var post_title string if err := rows.Scan(&ID, &post_title); err != nil { panic(err.Error()) } fmt.Println(ID, post_title) }

} [/code]

実行結果

runtimeで実行

[code lang=text]

time go run mysql_select.go

1 Hello world! 2 サンプルページ 4 safecss 5 マークダウンでの記述 6 マークダウンでの記述 7 safecss 8 MySQL を初期化する方法

9 MySQL を初期化する方法

real 0m1.228s user 0m1.010s sys 0m0.185s [/code]

コンパイルしたものを実行

コンパイルしたものは、拡張子がついていない実行モジュールが生成されるので、これを実行する

[code lang=text]

go build mysql_select.go

time ./mysql_select

1 Hello world! 2 サンプルページ 4 safecss 5 マークダウンでの記述 6 マークダウンでの記述

7 safecss

real 0m0.010s user 0m0.005s sys 0m0.003s [/code]

あたりまえだけど、コンパイルしたやつは、早い!!!