序文 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 から 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 ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
JD カルーセルは、動的な効果を追加せず、主に位置決めの知識を使用して、純粋な HTML と CS...
MySQL ストアド プロシージャ パラメータには、in、out、inout の 3 種類があります...
1. CSSスコープの使用(スタイル分割) Vue では、CSS スタイルを現在のコンポーネントでの...
Tomcatはプロジェクトにアクセスします。通常はIP + ポート + プロジェクト名です。 Ngi...
vue-cli で構築されたプロジェクト スキャフォールディングでは、すでに autoprefix...
Docker を使用すると、外部からコンテナにアクセスしたり、コンテナを相互接続したりすることで、ネ...
ビッグデータはますます注目を集めており、ビッグデータのいくつかの構成要素に精通していないと、自慢でき...
目次1. 2つのモジュールの違い2. Node.jsとの違い3. CommonJSモジュールの読み込...
Truncate table ステートメントは、テーブル内のすべてのデータを削除/切り捨てるために使...
最近 Linux を研究していて、いくつかの Linux ディストリビューションを試してみましたが、...
ウェブページにBaiduマップを挿入するBaidu Maps を自分の Web ページに追加したい場...
いつインストールするかprotoc コマンドを使用しても Protoc が見つからない場合は、インス...
Linux ホスト名変更コマンド1. ホスト名を一時的に変更するだけの場合は、hostname コマ...
実装準備 # ファイルパスをバックアップする必要があります: /opt/apollo/logs/ac...
記事「MySQL の最適化: キャッシュの最適化」では、システムによってコンパイルされた変数値、また...