goでdbrを使ってdbを検索
go始めてみました。
とりあえずよくやる、databaseにアクセスしてusersテーブルからUserを取得する的なものをやってみました。
dbrを使う
orm的なものはいくつかあるみたいだけど、goではあまりリッチなのは好まれない傾向がありますかね。
でもmysql-driverを生で使ってSQL書いていくのは私のようなゆるエンジニアには辛いのです。
で、調べてみたらgocraftのdbrというライブラリがいい具合っぽいので使ってみました。
package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/gocraft/dbr" ) type User struct { ID int Email string } func main() { var user User // mysqlのドライバーを使ってuser: mysql、password: rootでログインしてmydatabase_developmentを使う。loggerは使わない conn, _ := dbr.Open("mysql", "mysql:root@/mydatabase_development", nil) sess := conn.NewSession(nil) sess.Select("*").From("users").Where("id = ?", 1).Load(&user) fmt.Printf("%v", user) }
自分のコードから抜き出したものなので、まさにこのコードが動くかチェックしてないです。でもこんな感じで動くはず。
ここでvar user User
をvar users []User
にして実行すると配列で取得できるのが賢いなと思いました。
気になってるけどまだ分かっていないこと
- loggingする方法
- transactionの使い方
- コネクションプーリング出来るかどうか
- go-sql-driver/mysqlの仕組み?
他のORMの選択肢
その他
goの本を読み始めたんですが、みんなのGo言語いいっすね。 初学では文法を教えてくれるわけではないので厳しいですが、なんとなくgoを知ってさえいれば現場で使える技術が分かる。
初学ならスターティングGo言語を読んだらいいのかな。さっきkindleで買ったのでこれから読みます。
- 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/09
- メディア: 大型本
- この商品を含むブログ (1件) を見る
- 作者: 松尾愛賀
- 出版社/メーカー: 翔泳社
- 発売日: 2016/05/11
- メディア: Kindle版
- この商品を含むブログを見る