Go 言語でのデータ永続化と CRUD 操作

王林
リリース: 2023-06-04 15:10:35
オリジナル
1748 人が閲覧しました

インターネットの発展に伴い、特に一部のデータ集約型アプリケーションでは、データの保存と使用がますます重要になってきています。 Go 言語は、新興プログラミング言語として、高速、安全、同時実行性、効率的な機能を備え、進化するデータ ウェアハウスとビッグ データのシナリオで徐々に登場しつつあります。この記事では、Go 言語でデータの永続化と CRUD 操作を実装する方法を紹介します。

ステップ 1: 適切なデータベースの選択

Go 言語には、PostgreSQL、SQLite、MySQL、MariaDB、MongoDB などを含む多くのデータベース ドライバーが用意されています。プログラムの作成を開始する前に、まずアプリケーションに適したデータベースを選択し、関連するドライバーについて学習を続ける必要があります。その中で最も一般的に使用されるのは次のとおりです。

  • SQL データベース: PostgreSQL、MySQL、SQLite、MariaDB。
  • NoSQL データベース: MongoDB など

ここでは、さまざまなデータベースの違いについては詳しく説明しません。簡単に言うと、リレーショナル データとの複雑な関係を確立する場合は、通常 SQL データベースの方が実用的ですが、半構造化データを管理する場合は NoSQL データベースが適しています。多次元データ クエリの効率的な処理が必要な場合には、より適している可能性があります。

ステップ 2: データベース ドライバーを作成する

Go 言語には、すべての Go プログラマーに統一された SQL インターフェイスを提供する、database/sql などの多くの組み込みデータベース ドライバーが用意されています。もちろん、データベースドライバーが異なれば実装されるインターフェースも異なります。

ここでは、MySQL データベースを例として、Go 言語でデータベース接続を確立する方法を説明します。 Go 言語のデータベース/SQL ドライバーは、さまざまなリレーショナル データベースに統合された SQL インターフェイスを提供するため、プログラマは関連するパラメーターを変更するだけで、アプリケーションでさまざまな種類のリレーショナル データベースを使用できます。次に、MySQL ドライバーの作成例を示します。

    import (
        "database/sql"
        _ "github.com/go-sql-driver/mysql"
    )

    func getDatabaseConnection() (*sql.DB, error) {
        db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/test")
        return db, err
    }
ログイン後にコピー

上記のコードでは、MySQL ドライバーが import を使用して導入されていることがわかります。次に、sql.Open() メソッドを使用してデータベース接続を確立し、アカウント番号、パスワード、ホスト アドレス、ポート番号などの接続パラメータを渡します。ここでは、パスワードなしの root アカウントを使用しています。ホスト アドレスは 127.0.0.1、ポート番号は 3306、データベース名は ## です。 #テスト## #。 プロセスが完了したら、

db.Ping()

メソッドを呼び出してデータベースに正常に接続したかどうかをテストし、* 型の接続オブジェクトを返す必要があります。 SQL.DBステップ 3: CRUD 操作を実行する

データベース接続を確立したので、CRUD 操作を実行できます。 CRUD 操作は、それぞれ追加 (Create)、読み取り (Read)、更新 (Update)、および削除 (Delete) を表します。これらの操作には通常、データベース内のテーブルのデータの読み取り、クエリ、変更、削除が含まれます。

以下は簡単な CRUD の例です。これにより、「id、name、age」という 3 つのフィールドを持つレコードをデータベースに追加できます。

    func createUser(newUser User) error {
        db, err := getDatabaseConnection()
        if err != nil {
            return err
        }
        defer db.Close()

        _, err = db.Exec("INSERT INTO users(name, age) VALUES(?, ?)", newUser.Name, newUser.Age)
        if err != nil {
            return err
        }
        return nil
    }
ログイン後にコピー

上記のコードでは、## が使用されています。 #db.Exec()

メソッドはデータベースにデータを書き込みます。このうち、

? は動的バインディングパラメータです。このようにして、プリコンパイルされた SQL クエリ ステートメントに対応するパラメータが自動的に入力されるため、プログラムのセキュリティが確保されます。 db.Query() メソッドを使用して、データベースからクエリ操作を実行することもできます。

    func getUserByID(id int64) (*User, error) {
        db, err := getDatabaseConnection()
        if err != nil {
            return nil, err
        }
        defer db.Close()

        row := db.QueryRow("SELECT id, name, age FROM users WHERE id = ?", id)

        user := new(User)
        err = row.Scan(&user.ID, &user.Name, &user.Age)
        if err != nil {
            return nil, err
        }

        return user, nil
    }
ログイン後にコピー
上記の例では、db.QueryRow() メソッドを使用してクエリを実行し、クエリ結果を

row

オブジェクトに記録します。

row.Scan() メソッドを使用して、クエリ結果の特定の列の値を User 構造体に入力します (User 構造体にフィールド ID、名前、年齢 )。 概要

Web アプリケーションの構築、大規模なデータ セットの処理、分散システムの構築のいずれの場合でも、Go 言語は確実な選択肢です。この記事では、Go 言語とさまざまな種類のデータベースを使用してデータの永続化と CRUD 操作を構築する方法を説明しました。データベース アプリケーションを構築する必要がある場合でも、データ分析を実行する必要がある場合でも、高性能で大規模なアプリケーションを設計する必要がある場合でも、Go は無敵の選択肢です。

以上がGo 言語でのデータ永続化と CRUD 操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート