golangでmysqlデータベースを走査する方法

王林
リリース: 2023-06-03 12:55:26
転載
1169 人が閲覧しました

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. #単一行クエリ

単一行クエリとは、データベース テーブル内の 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 関数を使用して各フィールドの値を取得し、クエリ結果からデータ行を返すことができます。最後に、クエリ結果を出力します。

    #複数行クエリ
  1. 複数行クエリとは、データベース テーブル内の複数行のデータをクエリすることを指します。サンプル コードは次のとおりです。
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 関数を使用してください。処理が完了すると、クエリ結果は必要なくなります。

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

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