ホームページ >データベース >mysql チュートリアル >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 関数を使用する方法です。
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 関数を使用してください。処理が完了すると、クエリ結果は必要なくなります。
以上がgolangでmysqlデータベースを走査する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。