こんにちは、SDです。
今日はGo言語でTwitterみたいなアプリを作る連載第3弾を行っていこうかと思います。
そろそろ大詰めですね。
今回はDBを扱います。
バックエンドといったらDBの操作ですよね。
今回はなかなかの記述量となりますが、
この連載のキモとなるので頑張っていこうかと思います。
DBとORMの選定
今回は僕が慣れているからという理由でMySQLを使います。
Cloud9でのMySQLの使い方は下記サイトなどを参考にしてみてください。
また、ORMとしてはgormを採用します。
これも何故かというと、僕がgormしか使ったことがないからです。
・・・というわけでこちらも下記の方が非常に詳しくまとめられています。
ご参考にすることを強くお勧めします。
また、よく言われるように公式ドキュメントは読むべきだと思います。
(幸い日本語化されています)
Gormのインストール
go get -u github.com/jinzhu/gorm
これでお願いします。
コードを編集する
main.goを編集していきます。
細かいコードの説明はコメントをご覧ください。
DBへの接続
gormでのDBの接続はほぼ以下の書式で行われます。
db, err := gorm.Open(“mysql”, “[ユーザー名]:@[ホスト名]/[DB名]?parseTime=true”)
if err != nil {
panic(“You can’t open DB (dbGetAll())”)
} defer db.Close()
今回の注意点としては、?parseTime=trueです。
MySQLの場合は文字コードだかの関係で、これを付けないと現状接続できません。
(他のDBの場合は付けなくてOKでした)
defer db.Close()に関しては、DBとのコネクションを切る処理ですが、
いつ呼び出すかどうかは明確には決まっていないようです。
基本的にはメソッドの終わり際に書いてあることが多い印象ですが、
結構人によってまちまちだったりするので、詳細がわかったら追記したいと思います。
HTMLの編集
さて、次はViewを作っていきたいと思います。
こんな感じになります。
({{range}}はループを表します。ドットで要素にアクセスでき、 endで終了します。)
実行
やっとこさ実行してみます。
go run main.go
コンソールで
[GIN-debug] Listening and serving HTTP on :8080
のような表示が出ていれば無事に成功しています。
それではブラウザでlocalhostを表示してみます。
上みたいのが出ていると思います。
それでは、念願の初つぶやきを行います!
つぶやけましたね。
DBの方も確認してみます。
DBにデータが保存されているのを確認できました。
(GORMでは特に指定しない場合でもid, created_at, updated_at, deleted_atテーブルらが作成されます)
終わりに
おめでとうございます!
これにてTwitterみたいなアプリを作ろう講座は終わりです。
お疲れ様でした!
・・・え?これじゃあ超絶劣化メモ帳じゃないかって?
という強迫観念を感じたので、次回はこれらをベースに機能の拡張を図りたいと思います。
それではお楽しみに~