golang が mysql をトラバースする方法

WBOY
リリース: 2023-05-15 10:08:07
オリジナル
871 人が閲覧しました

データ量が増加し続けるにつれて、MySQL データベースは最新のアプリケーション開発で最も一般的に使用されるデータベースの 1 つになりました。アプリケーションでは、データ処理ではデータの走査と操作が必要になることが多く、これには効率的なプログラミング言語の使用が必要です。 Golang は、高速、シンプル、信頼性の高いオープンソース プログラミング言語として、アプリケーションを作成するためにますます多くの開発者に選ばれています。

この記事では、Golang が MySQL データベースをどのように横断するのか、および関連するコードの実装について紹介します。

1. MySQL データベースへの接続

MySQL データベースの探索を開始する前に、まず MySQL データベースに接続する必要があります。 Golang は、MySQL データベースへの接続を容易にするために、この目的のために、database/sql パッケージを提供します。まず、このパッケージを導入する必要があります:

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)
ログイン後にコピー

MySQL データベースに接続するには、データベース接続アドレス、データベース名、アカウント番号、パスワード、その他の情報を指定する必要があります。サンプルコードは以下のとおりです。

db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database_name")
if err != nil {
    fmt.Println("连接数据库出错:", err)
    return
}
defer db.Close()
ログイン後にコピー

このうち、ドライバ名は「mysql」、接続アドレスは「127.0.0.1:3306」、データベース名は「database_name」、アカウントとパスワードは以下の通りです。 「ユーザー」と「パスワード」です。

データベースに接続した後、関数の最後でデータベース接続を閉じる必要があります。これは、上記のコードに示すように、defer ステートメントを通じて実現できます。

2. データのクエリ

MySQL データベースに接続した後、データベースにクエリを実行できます。 Golang では、クエリ操作を実行する方法が 2 つあります。1 つは単一行クエリに query 関数を使用する方法、もう 1 つは複数行クエリに queryRows 関数を使用する方法です。

    #単一行クエリ
単一行クエリとは、データベース テーブル内の 1 行のデータをクエリすることを指します。サンプル コードは次のとおりです。

row := db.QueryRow("SELECT * FROM table_name WHERE id=?", 1)
if err != nil {
    fmt.Println("查询出错:", err)
    return
}
var id int
var name string
var age int
var address string
err = row.Scan(&id, &name, &age, &address)
if err != nil {
    fmt.Println("查询结果获取失败:", err)
    return
}
fmt.Println(id, name, age, address)
ログイン後にコピー

上記のコードでは、QueryRow 関数を使用してクエリを実行します。ここで、「?」はクエリ条件の値 (この場合は id=1) を示すプレースホルダーです。クエリ結果はデー​​タ行を返し、Scan 関数を通じて各フィールドの値を取得できます。最後に、クエリ結果を出力します。

    複数行クエリ
複数行クエリとは、データベース テーブル内の複数行のデータをクエリすることを指します。サンプル コードは次のとおりです。

rows, err := db.Query("SELECT * FROM table_name WHERE age > ?", 18)
if err != nil {
    fmt.Println("查询出错:", err)
    return
}
defer rows.Close()
for rows.Next() {
    var id int
    var name string
    var age int
    var address string
    err = rows.Scan(&id, &name, &age, &address)
    if err != nil {
        fmt.Println("查询结果获取失败:", err)
        return
    }
    fmt.Println(id, name, age, address)
}
ログイン後にコピー

上記のコードでは、Query 関数を使用してクエリを実行します。ここで、「?」はクエリ条件の値 (この場合は age>18) を示すプレースホルダーです。クエリ結果は複数のデータ行を返します。for ループを通じてデータの各行を走査し、Scan 関数を通じて各フィールドの値を取得できます。最後に、クエリ結果を出力します。

3. MySQL データを走査する

データベース テーブル内のデータをクエリした後、for ループを通じてデータを走査して処理できます。サンプル コードは次のとおりです。

rows, err := db.Query("SELECT * FROM table_name")
if err != nil {
    fmt.Println("查询出错:", err)
    return
}
defer rows.Close()
for rows.Next() {
    var id int
    var name string
    var age int
    var address string
    err = rows.Scan(&id, &name, &age, &address)
    if err != nil {
        fmt.Println("查询结果获取失败:", err)
        return
    }
    fmt.Println(id, name, age, address)
    // 在此处可以对获取到的数据进行处理
}
ログイン後にコピー
上記のコードでは、まず Query 関数を使用してデータベース テーブル内のすべてのデータをクエリし、次に for ループを通じてデータの各行を走査して、 Scan 機能を通じて各フィールドの値を取得し、最後に取得したデータを処理します。処理が完了した後、クエリ結果を使用する必要がなくなった場合は、忘れずに Close 関数を使用してクエリ結果を閉じる必要があります。

4. 概要

上記の紹介を通じて、Golang の MySQL への接続とクエリ操作が非常に簡単であることがわかります。わずか数行のコードで、MySQL データベースに接続し、データベース内のデータをクエリおよびスキャンできます。これにより、プログラム開発の作業負荷が大幅に軽減され、開発効率が向上します。したがって、Golang は徐々に、ほとんどの開発者にとって優先されるプログラミング言語の 1 つになりつつあります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!