Golang は、その優れたパフォーマンスにより、ますます多くの開発者に好まれているコンパイル言語です。 Golang の開発により、Web 開発、システム ツール、データベースなど、ますます多くのアプリケーション シナリオがカバーされています。その中で、データベース操作も Golang 開発者の日常業務に不可欠な部分となっています。データベース操作では、ORM フレームワークを使用すると時間を大幅に節約し、開発効率を向上させることができます。では、ORM フレームワークを使用して Golang でデータベースを操作するにはどうすればよいでしょうか?確認してみましょう。
ORM (オブジェクト リレーショナル マッピング) とは、オブジェクトと関係を記述するメタデータを使用し、データベース操作を抽象化レイヤーにカプセル化することによって、リレーショナル データベース内のデータをオブジェクト指向データのセットに変換することを指します。プログラミング プロセス中に基礎となる SQL 操作を気にする必要がないため、データベース操作とプログラム実装の複雑さが簡素化されます。
現在、Golang で最も人気のある ORM フレームワークには、GORM、XORM、QBS などがあります。この記事では、GORMを例に、GolangでのORMフレームワークの使い方を詳しく紹介します。
1. GORM のインストール
GORM の使用を開始する前に、対応する依存関係パッケージをインストールする必要があります。 GORM を使用するためにインストールする必要がある依存関係パッケージは次のとおりです:
go get -u github.com/jinzhu/gorm go get -u github.com/jinzhu/gorm/dialects/mysql
このうち 2 番目の依存関係パッケージは、MySQL データベースに接続するために使用されます。
2. データベースへの接続
GORM を使用して MySQL データベースを操作する前に、まず接続を確立する必要があります。 GORM では、次のコードを通じて MySQL データベースに接続できます:
import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" ) func main() { //连接MySQL数据库 db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc=Local") if err != nil { panic("failed to connect database") } defer db.Close() }
上記のコードでは、MySQL のユーザー名、パスワード、データベースが含まれる Open() 関数を通じて MySQL データベースに接続します。名前とその他の情報。パラメーターの最後に「&charset=utf8&parseTime=True&loc=Local」を追加すると、UTF-8 エンコーディングが使用され、時刻型解析がサポートされるようになります。
3. 構造の定義
ORM フレームワークを使用する場合、データベース内のテーブルとマッピングするためにデータベース テーブルの構造を定義する必要があります。以下は、ユーザー テーブル (ユーザー) を定義する構造の例です。
type User struct { gorm.Model Name string // 用户名 Age int // 年龄 }
上記のコードを通じて、ユーザー テーブルのいくつかのフィールドが構造の属性にマップされます。このうち「gorm.Model」は、ID、CreatedAt、UpdatedAt、DeletedAtの4つのフィールドを実装するGORMが提供する構造体であり、これら4つの共通フィールドを各テーブルに簡単に追加できます。
4. データ テーブルの作成
テーブル構造を定義した後、対応するデータ テーブルも作成する必要があります。 GORM では、AutoMigrate() 関数を使用してデータ テーブルを自動的に作成できます。以下はサンプル コードです:
func main() { //连接MySQL数据库 db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc=Local") if err != nil { panic("failed to connect database") } defer db.Close() //自动创建数据表 db.AutoMigrate(&User{}) }
上記のコードでは、AutoMigrate() 関数を使用してユーザー テーブルを自動的に作成します。この関数は、テーブルが存在するかどうかを自動的に識別します。テーブルが存在しない場合は、新しいテーブルを作成します。存在する場合は省略されます。パスします。
5.操作データ
上記の作業が完了したら、データの操作を開始します。 GORM では、さまざまな CRUD (作成、読み取り、更新、削除) 操作を実装するために、多くの API 関数が提供されています。以下は、いくつかの一般的な操作のサンプル コードです。
//新建一条用户数据 func CreateUser(u User) error { return db.Create(&u).Error }
上記のコードでは、Create() 関数を使用して、新しいデータを作成する操作を実装します。ユーザーデータ。
//查询指定ID的用户数据 func GetUserById(id uint) (User, error) { var user User return user, db.Where("id = ?", id).First(&user).Error }
上記のコードでは、Where() 関数と First() 関数を使用して、指定された ID のユーザー データを取得します。
//更新指定ID的用户数据 func UpdateUser(id uint, name string, age int) error { result := db.Model(&User{}).Where("id = ?", id).Update(map[string]interface{}{"name": name, "age": age}) if result.Error != nil { return result.Error } if result.RowsAffected == 0 { return errors.New("未找到符合条件的记录") } return nil }
上記のコードでは、Model()、Where()、および Update() 関数を使用して、指定された ID のユーザー データを更新します。 。
//删除指定ID的用户数据 func DeleteUser(id uint) error { result := db.Delete(&User{}, id) if result.Error != nil { return result.Error } if result.RowsAffected == 0 { return errors.New("未找到符合条件的记录") } return nil }
上記のコードでは、Delete() 関数を使用して、指定された ID のユーザー データを削除します。
6. 概要
ORM フレームワークを使用すると、複雑なデータベース操作とプログラム実装が大幅に簡素化され、開発時間が節約され、開発効率が向上します。 Golang では、GORM フレームワークを使用すると、MySQL データベースをより便利に操作できます。もちろん、GORM は多くの高度な操作も提供しますが、ここでは説明しません。この記事がお役に立てば幸いです。
以上がGolang で ORM を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。