Go 言語入門: データベース接続の基本概念
Go 言語の学習: データベースへの接続に関する基本的な知識、具体的なコード例が必要です
Go语言是一种开源的编程语言,其简洁、高效的特性让越来越多的开发者喜爱和使用。在开发过程中,经常需要与数据库建立连接,进行数据的读取、写入、更新和删除等操作。因此,学会如何在Go语言中连接数据库是非常重要的技能。
データベース ドライバー
Go 言語では、 connect データベースにはデータベース ドライバーの使用が必要です。現在、Go 言語の主なデータベース ドライバーは次のとおりです。- database/sql: Go 言語の標準パッケージで提供されるデータベース ドライバー インターフェイスであり、MySQL などのさまざまなデータベースをサポートします。 、PostgreSQL、SQLite など。
- go-sqlite3: SQLite データベースのドライバーであり、SQLite データベースに接続して操作するために使用されます。
- pq: PostgreSQL データベースのドライバーであり、PostgreSQL データベースの接続と操作に使用されます。
- go-mysql-driver: MySQL データベースに接続して操作するために使用される、MySQL データベース用のドライバーです。
この記事では、MySQL データベースを例に挙げて説明します。
データベース ドライバーのインストール
go-mysql-driver を使用して MySQL データベースに接続する前に、まずドライバーをインストールする必要があります。次のコマンドを使用してインストールできます。go get github.com/go-sql-driver/mysql
ログイン後にコピーインストールが完了したら、Go プログラムにパッケージをインポートし、その中の関数と構造を使用できます。
データベースへの接続
Go 言語で MySQL データベースに接続する手順は次のとおりです。- データベース ドライバー パッケージをインポートする: コード内で
を使用します。 import
キーワードは、「go-sql-driver/mysql」パッケージをインポートします。 sql.Open()
関数を使用してデータベース接続を開きます。この関数のパラメータは、データベースのドライバー名と接続文字列です。たとえば、sql.Open("mysql", "ユーザー名: パスワード@tcp(localhost:3306)/データベース名")
となります。- データベース接続の
Ping()
メソッドを呼び出して、接続が成功したかどうか、つまりデータベースに正常に接続できるかどうかを確認します。
以下はサンプル コードです:
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { // 打开数据库连接 db, err := sql.Open("mysql", "用户名:密码@tcp(localhost:3306)/数据库名称") if err != nil { fmt.Println("数据库连接失败:", err) return } defer db.Close() // 测试连接 err = db.Ping() if err != nil { fmt.Println("连接失败:", err) return } fmt.Println("连接成功!") }
ログイン後にコピー- データベース ドライバー パッケージをインポートする: コード内で
クエリ データ
接続が成功すると、データベース操作を実行できます。以下は、データをクエリするためのサンプル コードです。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 err := rows.Scan(&id, &name) if err != nil { fmt.Println("扫描行失败:", err) return } fmt.Println("ID:", id, "Name:", name) } if err = rows.Err(); err != nil { fmt.Println("遍历结果集失败:", err) return }
ログイン後にコピー上記のコードは、
db.Query()
メソッドを通じてデータベース内のデータをクエリし、rows.Next を使用します。 ()
クエリ結果をループします。ループ内では、rows.Scan()
メソッドを通じて行データがスキャンされ、結果が変数に格納されます。データの挿入
データのクエリに加えて、Go 言語はdb.Exec()
メソッドを通じてデータベースにデータを挿入することもできます。データを挿入するためのサンプル コードを次に示します。result, err := db.Exec("INSERT INTO table_name (name) VALUES (?)", "John") if err != nil { fmt.Println("插入数据失败:", err) return } affectedRows, _ := result.RowsAffected() fmt.Println("插入成功,影响的行数为:", affectedRows)
ログイン後にコピーdb.Exec()
メソッドを通じて SQL 挿入ステートメントを実行します。ここで、?
はパラメータ プレースホルダを表します。 「John」などの特定の値に置き換えて使用できます。データの更新と削除
Go 言語では、db.Exec()
メソッドを使用してデータベース内のデータを更新および削除できます。データを更新するサンプル コードを次に示します。result, err := db.Exec("UPDATE table_name SET name = ? WHERE id = ?", "Tom", 1) if err != nil { fmt.Println("更新数据失败:", err) return } affectedRows, _ := result.RowsAffected() fmt.Println("更新成功,影响的行数为:", affectedRows)
ログイン後にコピーdb.Exec()
メソッドを通じて SQL 更新ステートメントを実行します。ここで、?
はパラメータ プレースホルダを表します。特定の値に置き換えて使用できます。同様に、
db.Exec()
メソッドを使用して SQL 削除ステートメントを実行できます。例:result, err := db.Exec("DELETE FROM table_name WHERE id = ?", 1)
ログイン後にコピー上記のコードは
この記事の導入部を通じて、読者は Go 言語でデータベースに接続するための基本的な知識をほぼ理解できたと思います。データベース操作は実際の開発においてよく使われるスキルですが、この記事の内容が読者の皆様のお役に立てれば幸いであり、実際のプロジェクトに適用していただければ幸いです。table_name## を削除します。 #テーブル内のidは1データです。
以上がGo 言語入門: データベース接続の基本概念の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

GO言語で構造を定義する2つの方法:VARとタイプのキーワードの違い。構造を定義するとき、GO言語はしばしば2つの異なる執筆方法を見ます:最初...

ポインター構文とviperライブラリの使用における問題への取り組みGO言語でプログラミングするとき、特にポインターの構文と使用を理解することが重要です...
