Go でネイティブ SQL クエリを実行する方法: 必要なパッケージ (データベース/SQL やデータベース ドライバーなど) をインポートします。データベース接続を開きます。 db.Prepare メソッドを使用して SQL ステートメントを準備します。 stmt.Query メソッドを使用してクエリを実行し、動的な値を提供します。 rows.Next と rows.Scan を使用して、クエリ結果を反復処理します。データベース接続を閉じてリソースを解放します。
Golang でネイティブ SQL クエリを実行するにはどうすればよいですか?
Golang は、ネイティブ SQL クエリを使用してリレーショナル データベースと対話できる強力な SQL データベース パッケージを提供します。このチュートリアルでは、Golang を使用してネイティブ SQL クエリを実行する方法を説明し、実践的な例を示します。
必要なパッケージをインポートします
まず、必要なパッケージをインポートする必要があります:
import ( "database/sql" _ "github.com/go-sql-driver/mysql" // MySQL 驱动程序 )
注: データベースが異なると、独自のドライバーが必要になります。サポートされているドライバーのリストについては、[godoc](https://godoc.org/database/sql/driver) を参照してください。
データベース接続を開きます
次に、データベース接続を開きます:
db, err := sql.Open("mysql", "user:password@tcp(host:port)/database") if err != nil { log.Fatal(err) }
user
、password
、host
を必ず追加してください, port と database
を対応する値に置き換えます。 user
, password
, host
, port
和database
替换为相应的值。
准备 SQL 语句
要准备 SQL 查询,请使用 Prepare
方法:
stmt, err := db.Prepare("SELECT * FROM users WHERE name = ?") if err != nil { log.Fatal(err) }
这将创建一个预编译的 SQL 语句,用于稍后执行。?
占位符表示将在执行期间替换的动态值。
执行 SQL 查询
要使用指定的动态值执行查询,请使用 Query
方法:
rows, err := stmt.Query("John") if err != nil { log.Fatal(err) }
这将返回一个 Rows
对象,它包含查询结果。
处理查询结果
要遍历查询结果,请使用 Scan
SQL ステートメントの準備
SQL クエリを準備するには、Prepare
メソッドを使用します: for rows.Next() { var id int var name string if err := rows.Scan(&id, &name); err != nil { log.Fatal(err) } fmt.Printf("ID: %d, Name: %s\n", id, name) }これにより、後で実行するためにプリコンパイルされた SQL ステートメントが作成されます。
?
プレースホルダーは、実行中に置き換えられる動的な値を表します。 SQL クエリを実行する
指定された動的値でクエリを実行するには、Query
メソッドを使用します: 🎜db.Close()🎜これは、クエリを含む
Rows
オブジェクトを返します。結果。 🎜🎜🎜クエリ結果の処理🎜🎜🎜クエリ結果を反復処理するには、Scan
メソッドを使用します: 🎜package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" // MySQL 驱动程序 ) func main() { db, err := sql.Open("mysql", "user:password@tcp(host:port)/database") if err != nil { log.Fatal(err) } defer db.Close() stmt, err := db.Prepare("INSERT INTO users (name) VALUES (?)") if err != nil { log.Fatal(err) } _, err = stmt.Exec("Jane") if err != nil { log.Fatal(err) } stmt, err = db.Prepare("SELECT * FROM users WHERE name = ?") if err != nil { log.Fatal(err) } rows, err := stmt.Query("Jane") if err != nil { log.Fatal(err) } for rows.Next() { var id int var name string if err := rows.Scan(&id, &name); err != nil { log.Fatal(err) } fmt.Printf("ID: %d, Name: %s\n", id, name) } }🎜🎜データベース接続を閉じます🎜🎜🎜最後に、データベース接続を閉じてリソースを解放します: 🎜 rrreee🎜🎜実践ケース 🎜🎜🎜 以下は、データベースにレコードを挿入して取得する方法を示す実践的なケースです: 🎜rrreee
以上がGolang を使用してネイティブ SQL クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。