スキップしてメイン コンテンツに移動

GinでGORM CRUD入門

GinでGORM CRUD入門

Gin初心者のためのデータベース連携入門

まずはGinを使った簡単なAPIサーバを作り、データベース連携を行う手順を紹介します。Ginは軽量で高速なWebフレームワークで、gin.Default()でロギングやリカバリミドルウェアを自動で設定できます。データベース連携にはGORMを使うのが一般的ですが、database/sqlを直接利用するケースもあります。以下ではGORMをベースに、接続文字列をgorm.Open(sqlite.Open("test.db"))で設定し、db.AutoMigrate(&User{})でテーブルを作成します。

GORMとdatabase/sqlの使い分け

GORMはORMとして便利で、モデル構造体にタグを付けるだけでCRUDが簡単に実装できます。一方、database/sqlは低レベルでクエリ実行を細かく制御したい場合に有効です。例えば、複雑なJOINやトランザクション制御を行う際はsql.DBを直接使うことでパフォーマンスを最適化できます。初心者はまずGORMでCRUDを試し、必要に応じてdatabase/sqlに切り替えると良いでしょう。

CRUD操作とモデル設計

モデルは構造体で定義し、タグでテーブル名やカラム名を指定します。例として以下のようにUserモデルを作成します。

type User struct {
    ID   uint   `gorm:"primaryKey"`
    Name string `gorm:"size:255;not null"`
    Age  int
}

CRUDはdb.Create(&user)db.First(&user, id)db.Save(&user)db.Delete(&user)で実装できます。これらはdatabase/sqlExecQueryRowに相当しますが、GORMなら自動でプレースホルダを生成してくれます。

マイグレーションと永続化のベストプラクティス

マイグレーションはdb.AutoMigrate(&User{})で簡単に行えますが、実運用ではバージョン管理されたマイグレーションツール(例:golang-migrate)を使うことが推奨されます。永続化の観点では、接続プールを設定し、db.SetMaxOpenConns(10)db.SetConnMaxLifetime(time.Hour)でリソースを最適化します。また、トランザクションを利用して一貫性を保つことも重要です。

この記事はAIによって作成されました。

コメント