検索
ホームページバックエンド開発Golanggolangでmysqlデータを操作する方法

golangでmysqlデータを操作する方法

Mar 22, 2023 pm 02:23 PM
mysqlgolang言語を移動

現代のソフトウェア エンジニアリングでは、効率的で信頼性の高いサーバー アプリケーションを構築するために必要なスキルの需要が高まっています。その中でもGo言語を使ってリレーショナルデータベースを呼び出すことは必須の基礎となります。この記事では、Go 言語の標準パッケージを使用して、MySQL データのクエリと挿入を行います。

MySQL とは

#MySQL は、Oracle Corporation の支援のもとに開発された、インターネット インフラストラクチャで広く使用されているリレーショナル データベース管理システムです。複数のオペレーティング システムと Go 言語を含むプログラミング言語をサポートし、大規模なデータ統合と高パフォーマンスのクエリをサポートする一連の機能を備えています。

MySQL のデータはテーブルに基づいており、データの 1 行が 1 レコードに対応し、データの 1 列が 1 フィールドに対応します。 SQL 言語を使用してデータを操作します。最も一般的な SQL 操作には、SELECT、INSERT、UPDATE、DELETE、CREATE TABLE があります。

Go 言語の MySQL ドライバー

Go 言語では、サードパーティの MySQL ドライバーを使用して MySQL データベースに接続し、クエリを実行できます。ただし、GO 言語の標準ライブラリにはすでに

database/sql パッケージが含まれており、このパッケージには標準 SQL データベース インターフェイスが実装されており、MySQL、PostgreSQL、SQLite などの他の便利で一般的な SQL データベースと対話できます。

したがって、MySQL にクエリを実行する Go アプリケーションの構築を開始する前に、MySql ドライバーをインストールする必要があります。迅速なインストールには、コマンド ライン コマンド

go get -u github.com/go-sql-driver/mysql を使用できます。

これは、Go 言語ではすべてのデータ アクセスが

SQL.DB 接続を通じて行われる必要があるためです。ドライバーの目的は、database/sql の関数にインターフェイス規約を実装することです。

接続の確立

Go 言語では、MySQL データベースへの接続の確立は接続文字列に基づいて行われます。接続文字列には、接続に必要なすべてのパラメータが含まれていますユーザー名、パスワード、ホスト名または IP アドレス、ポート番号、データベース名など。

db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
    log.Fatal(err)
}

クエリ データ

Go 言語では、

db.Query()db.QueryRow()## を使用できます。 #anddb.Exec() 関数は、MySQL データベース内のデータをクエリおよび操作します。

db.Query()

この関数は複数のレコードをクエリするために使用され、*sql.Rows オブジェクトを返します。 db.QueryRow() この関数は、単一レコードをクエリするために使用され、resultset と同様の *sql.Row オブジェクトを返しますが、返されるのはレコードの最初の行。通常、単一の一意のレコードをクエリするために使用されます。 db.Exec() この関数は、INSERT、UPDATE、DELETE などの非クエリ SQL ステートメントを実行するために使用され、sql.Result オブジェクトを返します。 この例では、

db.Query()

関数を使用してすべてのレコードをクエリします。シンプルなカウンターを使用してレコード数をカウントし、データの各行をコンソールに出力します。 <pre class="brush:php;toolbar:false">rows, err := db.Query(&quot;SELECT id, name FROM users&quot;) if err != nil {     log.Fatal(err) } defer rows.Close() count := 0 for rows.Next() {     var id int     var name string     if err := rows.Scan(&amp;id, &amp;name); err != nil {         log.Fatal(err)     }     fmt.Printf(&quot;id=%d, name=%s\n&quot;, id, name)     count++ } if err := rows.Err(); err != nil {     log.Fatal(err) } fmt.Printf(&quot;Found %d users\n&quot;, count)</pre>

rows.Close()

関数は、データを取得した後に呼び出して、*sql.Rows に関連付けられたデータベース リソースを解放する必要があります。同時に、コード内では rows.Next() 関数が使用されており、処理できる行がまだあるかどうかを示すブール値を返します。さらに、この例では rows.Scan() 関数を使用して、各行レコードの値を、この例で定義されている id 変数と name 変数にコピーします。たとえば、 、各値をコンソールに出力します。

データの挿入

Go 言語を使用して MySQL データベースにデータを挿入することもできます。最も簡単な方法は、

db.Exec()# を使用することです。 ## 関数 。 insert ステートメントを

db.Exec() 関数に渡すと、MySQL で SQL ステートメントとして実行されます。

result, err := db.Exec("INSERT INTO users(name, email) VALUES('John Doe', 'johndoe@gmail.com')")
if err != nil {
    log.Fatal(err)
}

rowsAffected, err := result.RowsAffected()
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Inserted %d rows into users table\n", rowsAffected)
result.RowsAffected() を使用して結果セット内の影響を受ける行の数を取得し、この値を使用して更新されたデータの数をコンソールに出力できます。

まとめ

この記事では、Go 言語を使用した MySQL データベースの基本的なクエリ操作を紹介しました。標準ライブラリ database/sql

とサードパーティの MySQL ドライバーを使用して接続を確立し、データをクエリする方法を学習しました。また、

db.Exec() 関数を使用して MySQL データベースにデータを挿入する方法も学びました。これらの概念は、Go で効率的で信頼性の高いサーバー アプリケーションを構築する上で重要な部分であり、最新のソフトウェア エンジニアリングにおいて不可欠なスキルです。

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

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
GOインターフェイスでアサーションとタイプスイッチを入力しますGOインターフェイスでアサーションとタイプスイッチを入力しますMay 02, 2025 am 12:20 AM

gohandlesinterfacesandtypeassertionseffectivivivivivity、強化された柔軟性と耐毒性を強化します

エラーを使用し、エラーを使用して、goでエラー検査を行いますエラーを使用し、エラーを使用して、goでエラー検査を行いますMay 02, 2025 am 12:11 AM

言語エラー処理は、エラーとエラーを介してより柔軟になり、読みやすくなります。 1.エラーは、エラーが指定されたエラーと同じであり、エラーチェーンの処理に適しているかどうかを確認するために使用されます。 2.エラー。エラータイプを確認するだけでなく、エラーを特定のタイプに変換することもできます。これは、エラー情報を抽出するのに便利です。これらの関数を使用すると、エラー処理ロジックを簡素化できますが、エラーチェーンの正しい配信に注意を払い、コードの複雑さを防ぐために過度の依存性を回避できます。

GOのパフォーマンスチューニング:アプリケーションの最適化GOのパフォーマンスチューニング:アプリケーションの最適化May 02, 2025 am 12:06 AM

tomakegogoapplicationsRunfasterAndMore -efficient、useprofilingtools、leverageconconcurrency、andmanagememoryefcectively.1)useprofforcpuandmemoryprofilingtoidentififybottlenecks.2)

GOの未来:トレンドと開発GOの未来:トレンドと開発May 02, 2025 am 12:01 AM

go'sfutureisbrightwithtrendslikeRikeRovedTooling、generics、cloud-nativeadoption、performulenhancements、andwebassemblyintegration、butchallengesincludemaintainingsimplicitandimplovingeror handling。

Goroutinesの理解:Goの同時性に深く潜りますGoroutinesの理解:Goの同時性に深く潜りますMay 01, 2025 am 12:18 AM

GoroutinesAreSareSareSareSormethodSthaturncurlyntingo、Enableing and LightweightConcurrency.1)theyRuntimeSimeSingMultiplexing、SountyStorunonFeweroSthReads.2)ゴルチンズを失ったことを許可します

go:目的と使用法でのinit機能を理解するgo:目的と使用法でのinit機能を理解するMay 01, 2025 am 12:16 AM

initistoistoInitializevariables、setupconutupurations、orforformndexedarysetupbe foreThemainfunctionexecutes.useinitby:1)inginginyourcodeTorunautorunaintalunain、2)KeepingItshortandpocusedonsimpletasks、3)ConsididiriveSusinginsingingingingingingingingingingingingingingingingingingingingingingsingpltassksを使用すると、

GOインターフェイスの理解:包括的なガイドGOインターフェイスの理解:包括的なガイドMay 01, 2025 am 12:13 AM

go interfacesaremethodsignaturesetsetsattypesmustimplement、unableingpolymorphism withintinheritance forcleaner、modularcode.theyareimplictilistifisisfiestified、houseforfflexibleapisanddeaupling、busrecarefulusoavoidoidoimoidimeerrororsypertety。

GOのパニックからの回復:いつ、どのように使用するか()GOのパニックからの回復:いつ、どのように使用するか()May 01, 2025 am 12:04 AM

Goで回復()関数を使用して、パニックから回復します。特定の方法は次のとおりです。1)回復()を使用して、延期関数でパニックをキャプチャして、プログラムのクラッシュを避けます。 2)デバッグの詳細なエラー情報を記録します。 3)特定の状況に基づいてプログラムの実行を再開するかどうかを決定します。 4)パフォーマンスに影響を及ぼさないように注意して使用します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター