1.2K Views
January 18, 24
スライド概要
1/9 GolangのORMライブラリ・GORM データテーブル定義編
2/9 Object-Relational Mapper(ORM)とは? SQLを書かずにオブジェクトメソッドでDBを操作するためのツール ・CRUD操作 ・作成日時や更新日時の自動挿入 ・マイグレーション ・トランザクション ・DryRun Etc.
3/9 GORMの特徴 ・静的型付け言語で作られたフル機能ORM ・厳格な記述規約によるコード管理の緩和 ・構造体によるフィールド定義 ・Hooksによる、処理の前後に呼ばれる関数の定義 ・イーガーロードによる検索効率化(N+1問題対策)
4/9 GORMによるUsersテーブル定義 データテーブル作成のため、Goの構造体を定義する。 各単語は必ず大文字から始めること テーブル名を複数形で書く gorm: から始まるタグで フィールドのルールを 定義する フィールド名を 定義する データ型を定義する 配列型など、RDBMSごとの固有の型は SQL形式で定義を記入する
5/9 マイグレーションで作成されたUsersテーブル 定義したテーブル名、フィールド名はすべて スネークケースに変換される テーブル名はusers 自動採番 配列型 主キーやユニークキーなど
テーブル作成のコーディング① databaseパッケージに前述と同じ要領で5つの構造体を定義する 6/9
7/9 テーブル作成のコーディング② 5つの構造体から テーブル作成 データベースに接続し、 AutoMigrate関数を実行するだけで テーブル定義を最新に保つことができる
8/9 テーブル作成のコーディング③ 少ないコード量でテーブルの定義を簡単に行うことができた 自動採番のための~_id_seqも作成されている
9/9 GORMを使った所感 ・オブジェクトでDB操作が快適に行える点が良い ・豊富なタグ機能により、柔軟なかつ厳格なルール付けを行うことが可能 (外部キー制約や読み取り専用フィールドなど) ・GolangのGraphQLライブラリと相性が良い (記述規約がほとんど同じ)