ホームページ >バックエンド開発 >Golang >golangでmysqlデータを操作する方法

golangでmysqlデータを操作する方法

PHPz
PHPzオリジナル
2023-03-22 14:23:561649ブラウズ

現代のソフトウェア エンジニアリングでは、効率的で信頼性の高いサーバー アプリケーションを構築するために必要なスキルの需要が高まっています。その中でもGo言語を使ってリレーショナルデータベースを呼び出すことは必須の基礎となります。この記事では、Go 言語の標準パッケージを使用して、MySQL データのクエリと挿入を行います。

MySQL とは

#MySQL は、Oracle Corporation の支援のもとに開発された、インターネット インフラストラクチャで広く使用されているリレーショナル データベース管理システムです。複数のオペレーティング システムと Go 言語を含むプログラミング言語をサポートし、大規模なデータ統合と高パフォーマンスのクエリをサポートする一連の機能を備えています。

MySQL のデータはテーブルに基づいており、データの 1 行が 1 レコードに対応し、データの 1 列が 1 フィールドに対応します。 SQL 言語を使用してデータを操作します。最も一般的な SQL 操作には、SELECT、INSERT、UPDATE、DELETE、CREATE TABLE があります。

Go 言語の MySQL ドライバー

Go 言語では、サードパーティの MySQL ドライバーを使用して MySQL データベースに接続し、クエリを実行できます。ただし、GO 言語の標準ライブラリにはすでに

database/sql パッケージが含まれており、このパッケージには標準 SQL データベース インターフェイスが実装されており、MySQL、PostgreSQL、SQLite などの他の便利で一般的な SQL データベースと対話できます。

したがって、MySQL にクエリを実行する Go アプリケーションの構築を開始する前に、MySql ドライバーをインストールする必要があります。迅速なインストールには、コマンド ライン コマンド

go get -u github.com/go-sql-driver/mysql を使用できます。

これは、Go 言語ではすべてのデータ アクセスが

SQL.DB 接続を通じて行われる必要があるためです。ドライバーの目的は、database/sql の関数にインターフェイス規約を実装することです。

接続の確立

Go 言語では、MySQL データベースへの接続の確立は接続文字列に基づいて行われます。接続文字列には、接続に必要なすべてのパラメータが含まれていますユーザー名、パスワード、ホスト名または IP アドレス、ポート番号、データベース名など。

db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
    log.Fatal(err)
}

クエリ データ

Go 言語では、

db.Query()db.QueryRow()## を使用できます。 #anddb.Exec() 関数は、MySQL データベース内のデータをクエリおよび操作します。

db.Query()

この関数は複数のレコードをクエリするために使用され、*sql.Rows オブジェクトを返します。 db.QueryRow() この関数は、単一レコードをクエリするために使用され、resultset と同様の *sql.Row オブジェクトを返しますが、返されるのはレコードの最初の行。通常、単一の一意のレコードをクエリするために使用されます。 db.Exec() この関数は、INSERT、UPDATE、DELETE などの非クエリ SQL ステートメントを実行するために使用され、sql.Result オブジェクトを返します。 この例では、

db.Query()

関数を使用してすべてのレコードをクエリします。シンプルなカウンターを使用してレコード数をカウントし、データの各行をコンソールに出力します。 <pre class="brush:php;toolbar:false">rows, err := db.Query(&quot;SELECT id, name FROM users&quot;) if err != nil {     log.Fatal(err) } defer rows.Close() count := 0 for rows.Next() {     var id int     var name string     if err := rows.Scan(&amp;id, &amp;name); err != nil {         log.Fatal(err)     }     fmt.Printf(&quot;id=%d, name=%s\n&quot;, id, name)     count++ } if err := rows.Err(); err != nil {     log.Fatal(err) } fmt.Printf(&quot;Found %d users\n&quot;, count)</pre>

rows.Close()

関数は、データを取得した後に呼び出して、*sql.Rows に関連付けられたデータベース リソースを解放する必要があります。同時に、コード内では rows.Next() 関数が使用されており、処理できる行がまだあるかどうかを示すブール値を返します。さらに、この例では rows.Scan() 関数を使用して、各行レコードの値を、この例で定義されている id 変数と name 変数にコピーします。たとえば、 、各値をコンソールに出力します。

データの挿入

Go 言語を使用して MySQL データベースにデータを挿入することもできます。最も簡単な方法は、

db.Exec()# を使用することです。 ## 関数 。 insert ステートメントを

db.Exec() 関数に渡すと、MySQL で SQL ステートメントとして実行されます。

result, err := db.Exec("INSERT INTO users(name, email) VALUES('John Doe', 'johndoe@gmail.com')")
if err != nil {
    log.Fatal(err)
}

rowsAffected, err := result.RowsAffected()
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Inserted %d rows into users table\n", rowsAffected)
result.RowsAffected() を使用して結果セット内の影響を受ける行の数を取得し、この値を使用して更新されたデータの数をコンソールに出力できます。

まとめ

この記事では、Go 言語を使用した MySQL データベースの基本的なクエリ操作を紹介しました。標準ライブラリ database/sql

とサードパーティの MySQL ドライバーを使用して接続を確立し、データをクエリする方法を学習しました。また、

db.Exec() 関数を使用して MySQL データベースにデータを挿入する方法も学びました。これらの概念は、Go で効率的で信頼性の高いサーバー アプリケーションを構築する上で重要な部分であり、最新のソフトウェア エンジニアリングにおいて不可欠なスキルです。

以上がgolangでmysqlデータを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。