「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C++ を使用して MySQL データベースへの接続を確立するにはどうすればよいですか?

C++ を使用して MySQL データベースへの接続を確立するにはどうすればよいですか?

2024 年 10 月 31 日公開
ブラウズ:133

How to Establish a Connection to a MySQL Database Using C  ?

C を使用して MySQL データベースに接続する方法

Web 開発の領域では、データベースのデータにアクセスして操作することが必要になることがよくあります。 C は、データベースに接続してクエリを実行するための強力な機能を提供します。この記事では、C を使用して MySQL データベースとの接続を確立する方法を詳しく説明し、実際のコード例を使用してプロセスを示します。

前提条件

MySQL データベースに接続するには、次の手順を実行します。次の前提条件が必要です:

  • MySQL データベース サーバーが実行されていること
  • MySQL コネクタ/C ライブラリがインストールされていること
  • C コンパイラ (例: g 、clang )

接続の構築

データベースへの接続の作成は、データにアクセスするための最初のステップです。 MySQL Connector/C ライブラリは、接続を確立するために必要なクラスと関数を提供します。次のコード スニペットはプロセスを示しています。

sql::Driver *driver;
sql::Connection *con;
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "root", "root");

このコードでは、driver はドライバー クラスのインスタンス、con はドライバー クラスのインスタンスです。接続オブジェクトを取得し、get_driver_instance() はライブラリからドライバー インスタンスを取得します。接続は、ホスト、ユーザー名、およびパスワードをパラメーターとして受け取る connect 関数を使用して開きます。

データベース スキーマの設定

接続が確立されたら、使用するデータベース スキーマを指定できます。と一緒に働きたいです。スキーマは、データベース内のオブジェクト (テーブル、ビューなど) の論理的なコレクションです。スキーマを設定するには、次のコードを使用します:

con->setSchema("test");

この例では、「test」スキーマを使用していますが、希望のスキーマ名に変更できます。

クエリの実行

接続の準備ができたので、SQL クエリを実行してデータを取得または更新できます。データを選択する簡単なクエリを次に示します。

sql::Statement *stmt;
sql::ResultSet *res;
stmt = con->createStatement();
res = stmt->executeQuery("SELECT 'Hello World!' AS _message'");

このコードでは、stmt はクエリの実行に使用されるステートメント オブジェクトで、res はクエリを含む結果セットです。 results.

結果の処理

結果を反復処理してデータを取得するには、次のコードを使用します。

while (res->next()) {
    cout getString("_message") getString(1) 

ここで、while ループは結果セット内の行を反復処理し、res->next() はカーソルを次の行に進めます。 res->getString() は、指定されたカラム (例では _message またはカラム 1) の値を取得します。

結論

MySQL Connector/C ライブラリを統合し、上記で概説した手順に従うことにより、を使用すると、MySQL データベースへの接続をシームレスに確立し、C アプリケーション内でデータ操作を実行できます。適切なリソース管理を確保するために、例外を処理し、終了したら接続オブジェクトを閉じることを忘れないでください。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3