GoでMySQL接続をしてみる
DB接続用の標準パッケージを取得しておく
$ go get "github.com/go-sql-driver/mysql"
MySQLでサンプルDBを用意しておく
> create database book_sample; > use book_sample; > > create table if not exists books ( > id int auto_increment, > title varchar(255) not null, > primary key (id) > );
データを適当に入れる
mysql> select * from books; +----+-------------------+ | id | title | +----+-------------------+ | 1 | Lord of the Rings | | 2 | The Two Towers | +----+-------------------+
$GOPATH/src/ 以下にプロジェクトディレクトリを作成してmain.goを配置
~/g/s/book ❯❯❯ tree . . └── main.go
main.go
package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) // Book table type Book struct { ID int Title string } func main() { db, err := sql.Open("mysql", "root:root@/book_sample") log.Println("Connected...") if err != nil { log.Fatal(err) } defer db.Close() rows, err := db.Query("select * from books") defer rows.Close() if err != nil { panic(err.Error()) } for rows.Next() { var book Book err := rows.Scan(&book.ID, &book.Title) if err != nil { panic(err.Error()) } fmt.Println(book.ID, book.Title) } }
$ go run main.go
参考