GolangでMySQLデータベースを操作するための実装コード

GolangでMySQLデータベースを操作するための実装コード

序文

Golang は、SQL データベースにアクセスするための database/sql パッケージを提供します。データベースを操作するためのエントリ オブジェクトとして、sql.DB は主に 2 つの重要な機能を提供します。

•sql.DB は、データベース ドライバーを通じて、基盤となるデータベース接続の開始と終了を管理する機能を提供します。

•sql.DBはデータベース接続プールを管理します

sql.DB は、データベース接続オブジェクトではなく、データベースを操作するための抽象的なアクセス インターフェイスを表していることに注意してください。これにより、データベース接続を開いたり閉じたり、ドライバーに基づいて接続プールを管理したりできます。使用中の接続はビジーとしてマークされ、使用後は接続プールに戻り、次の使用を待機します。したがって、接続を接続プールに戻さないと、接続が多すぎてシステム リソースが枯渇することになります。

GolangによるMySQL操作入門

GolangでMySQLデータベースを操作する感覚は、PHPのPDOでMySQLを操作する感覚に少し似ています。もともとPHPerであれば、Golangに切り替えると非常に馴染みがあるでしょう。全体的な感覚は非常にシンプルです。

Golang による MySQL の操作に関するメモ

GolangはMySQL操作用の標準ライブラリを実装していますが、MySQLドライバは実装していません。

そのため、まずは github からgo-sql-driverドライバー パッケージをダウンロードする必要があります (src ディレクトリで実行することをお勧めします)。コマンドは次のとおりです。

github.com/go-sql-driver/mysql にアクセスしてください

次のようにテストデータベースにテーブルフィールドを作成します。

存在しない場合はテーブルを作成 `test`.`user` (
 `user_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ユーザーID',
 `user_name` VARCHAR(45) NOT NULL COMMENT 'ユーザー名',
 `user_age` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'ユーザー年齢',
 `user_sex` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'ユーザーの性別',
 主キー (`user_id`))
 エンジン = InnoDB
 AUTO_INCREMENT = 1
 デフォルトの文字セット = utf8
 照合 = utf8_general_ci
 COMMENT = 'ユーザーテーブル'

データへの挿入操作の実装

パッケージメイン
輸入 (
 「fmt」
 「データベース/SQL」
 //mysql ドライバーをインポートします_ "github.com/go-sql-driver/mysql" 
)
関数main(){
 //database/sql パッケージの Open を使用してデータベース db に接続します。err := sql.Open("mysql","root:root@tcp(localhost:3306)/test?charset=utf8")
 err != nil の場合 {
 fmt.Println("データベースへの接続に失敗しました:",err)
 戻る 
 }
 //挿入の前処理には DB 構造インスタンス メソッド Prepare を使用します。Prepare は stmt オブジェクトを返します。stmt, err := db.Prepare("insert into `user`(user_name,user_age,user_sex)values(?,?,?)")
 err!=nil{の場合
 fmt.Println("前処理に失敗しました:",err)
 戻る  
 }
 //Stmt オブジェクトを使用して前処理パラメータを実行します result,err := stmt.Exec("pengjin",33,"男")
 err!=nil{の場合
 fmt.Println("前処理の実行に失敗しました:",err)
 戻る  
 }それ以外{
 行,_ := 結果.RowsAffected()
 fmt.Println("実行は成功しました、影響を受けた行数", rows,"rows")
 }
}

上記のコードは、PHP で pdo を操作しているような感覚になります。実際、上記のコードは、Prepare メソッドを記述せずに、Stmt インスタンスの Exec メソッドを介して直接実装することもできます。

要約する

上記は、編集者が紹介したgolangでMySQLデータベースを操作するための実装コードです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • GolangはSSHプロキシ経由でMySQLに接続する
  • Golang で MySQL データベースに接続する
  • GolangでMySqlデータベースを操作するための完全な手順
  • GolangでMySQLを操作する方法
  • GolangでMySQLデータベースのバックアップを実装する方法
  • Golang 操作はデータベースに接続して、mysql トランザクションの例を実装します。

<<:  JSタイマーを使用して要素を移動する

>>:  Linuxサーバ侵入緊急対応記録(概要)

推薦する

JDカルーセル効果を実現するための純粋なHTMLとCSS

JD カルーセルは、動的な効果を追加せず、主に位置決めの知識を使用して、純粋な HTML と CS...

MySQLデータストレージプロセスパラメータの詳細な例

MySQL ストアド プロシージャ パラメータには、in、out、inout の 3 種類があります...

CSSスコープ(スタイル分割)の使用の概要

1. CSSスコープの使用(スタイル分割) Vue では、CSS スタイルを現在のコンポーネントでの...

Nginx 構成 80 ポート アクセス 8080 とプロジェクト名アドレス メソッド分析

Tomcatはプロジェクトにアクセスします。通常はIP + ポート + プロジェクト名です。 Ngi...

CSS3 パッケージ化後にプレフィックスプラグインを自動的に追加する方法の詳細な説明: autoprefixer

vue-cli で構築されたプロジェクト スキャフォールディングでは、すでに autoprefix...

Dockerコンテナを外部IPとポートにバインドする方法

Docker を使用すると、外部からコンテナにアクセスしたり、コンテナを相互接続したりすることで、ネ...

Hadoop を使用せずに Linux 環境に Spark のスタンドアロン バージョンをインストールする方法

ビッグデータはますます注目を集めており、ビッグデータのいくつかの構成要素に精通していないと、自慢でき...

Node.jsがES6モジュールを処理する方法の詳細な説明

目次1. 2つのモジュールの違い2. Node.jsとの違い3. CommonJSモジュールの読み込...

MySQL truncate table ステートメントの使用

Truncate table ステートメントは、テーブル内のすべてのデータを削除/切り捨てるために使...

一般的な Linux ディストリビューションのミラーソース構成の概要

最近 Linux を研究していて、いくつかの Linux ディストリビューションを試してみましたが、...

Baidu Maps を Web ページに埋め込み、Baidu Maps API を使用してマップをカスタマイズする詳細な手順

ウェブページにBaiduマップを挿入するBaidu Maps を自分の Web ページに追加したい場...

UbuntuにProtobuf 3をインストールするための詳細なチュートリアル

いつインストールするかprotoc コマンドを使用しても Protoc が見つからない場合は、インス...

Linuxホスト名変更コマンドの詳しい説明

Linux ホスト名変更コマンド1. ホスト名を一時的に変更するだけの場合は、hostname コマ...

Linux CentOS でスケジュールされたバックアップ タスクを設定する方法

実装準備 # ファイルパスをバックアップする必要があります: /opt/apollo/logs/ac...

MySQL 最適化接続最適化

記事「MySQL の最適化: キャッシュの最適化」では、システムによってコンパイルされた変数値、また...