MySQL 8.0 リファレンスマニュアル  /  Connector および API

第 29 章 Connector および API

MySQL Connector はクライアントプログラムに MySQL サーバーへの接続を提供します。 API は、クラシック MySQL プロトコル または X プロトコル を使用した MySQL リソースへの低レベルのアクセスを提供します。 コネクタと API の両方を使用すると、ODBC、Java (JDBC)、C++、Python、Node.js、PHP、Perl、Ruby、C などの別の言語または環境から MySQL ステートメントに接続して実行できます。

MySQL Connector

Oracle では多数のコネクタを開発しています。

  • Connector/C++ により、C++ アプリケーションは MySQL に接続できます。

  • Connector/J は標準 JDBC (Java Database Connectivity) API を使用して、Java アプリケーションから、MySQL に接続するためのドライバサポートを提供します。

  • Connector/NET を使用すると、開発者は MySQL に接続する .NET アプリケーションを作成できます。Connector/NET は、完全に機能する ADO.NET インタフェースを実装し、ADO.NET 対応ツールでの使用をサポートします。 Connector/NET を使用するアプリケーションは、サポートされている任意の .NET 言語で記述できます。

    MySQL for Visual Studio は、Connector/NET および Microsoft Visual Studio 2012、2013、2015 および 2017 で動作します。MySQL for Visual Studio は、Visual Studio から MySQL オブジェクトおよびデータへのアクセスを提供します。 Visual Studio パッケージとして、サーバーエクスプローラに直接統合され、新しい接続を作成して MySQL データベースオブジェクトを操作できます。

  • Connector/ODBC は ODBC (Open Database Connectivity) API を使用して、MySQL に接続するためのドライバサポートを提供します。 Windows、Unix および macOS プラットフォームからの ODBC 接続をサポートしています。

  • Connector/PythonPython DB API バージョン 2.0 に準拠する API を使用して、Python アプリケーションから、MySQL に接続するためのドライバサポートを提供します。 追加の Python モジュールまたは MySQL クライアントライブラリは必要ありません。

  • Connector/Node.js には、X プロトコル を使用して Node.js アプリケーションから MySQL に接続するための非同期 API が用意されています。 Connector/Node.js では、データベースセッションおよびスキーマの管理、MySQL ドキュメントストアコレクションの操作および RAW SQL ステートメントの使用がサポートされています。

MySQL C API

C アプリケーション内で MySQL をネイティブに使用するための直接アクセスのために、C APIlibmysqlclient クライアントライブラリを介して MySQL クライアント/サーバープロトコルへの低レベルのアクセスを提供します。 これは、MySQL サーバーのインスタンスに接続するために使用する主な方法で、MySQL コマンド行クライアントと、ここで詳しく説明している多くの MySQL Connector およびサードパーティー API のどちらにも使用されています。

libmysqlclient は、MySQL ディストリビューションに含まれています。

MySQL C API Implementationsも参照してください。

C アプリケーションから MySQL にアクセスするか、この章の Connector や API でサポートされていない言語で、MySQL へのインタフェースを構築するには、C API から始めます。 このプロセスに役立つ、多くのプログラマ向けユーティリティーがあります。セクション4.7「プログラム開発ユーティリティ」を参照してください。

サードパーティー MySQL API

この章で説明している残りの API は、特定のアプリケーション言語から MySQL へのインタフェースを提供します。 これらのサードパーティーソリューションは Oracle で開発されていないか、サポートされていません。 それらの使用と機能に関する基本情報は、参考目的でのみここで提供しています。

すべてのサードパーティー言語 API は、libmysqlclient を使用するか、または ネイティブドライバを実装するか、2 つの方法のいずれかを使用して開発されています。 2 つのソリューションには異なるメリットがあります。

  • libmysqlclient は MySQL クライアントアプリケーションと同じライブラリを使用するため、MySQL と完全に互換性があります。 ただし、機能セットは、libmysqlclient から公開された実装とインタフェースに制限され、データがネイティブ言語と MySQL API コンポーネント間でコピーされるため、パフォーマンスが低下することがあります。

  • ネイティブドライバはホスト言語または環境内に完全に収まる MySQL ネットワークプロトコルの実装です。 ネイティブドライバはコンポーネント間でのデータのコピーが少ないため高速であり、標準 MySQL API によって使用できない高度な機能を提供できます。 さらに、ネイティブドライバコンポーネントの構築には、MySQL クライアントライブラリのコピーが必要ないため、ネイティブドライバは、エンドユーザーにとって構築とデプロイが簡単です。

表29.1「MySQL API およびインタフェース」 には、MySQL で使用可能なライブラリおよびインタフェースの多くがリストされています。

表 29.1 MySQL API およびインタフェース

環境 API メモ
Ada GNU Ada MySQL バインディング libmysqlclient GNU Ada 用の MySQL バインディングに関するドキュメントを参照してください。
C C API libmysqlclient MySQL 8.0 C API Developer Guideを参照してください。
C++ Connector/C++ libmysqlclient MySQL Connector/C++ 8.0 Developer Guideを参照してください。
MySQL++ libmysqlclient 「MySQL++ web サイト」を参照してください。
MySQL wrapped libmysqlclient MySQL wrapped」を参照してください。
Cocoa MySQL-Cocoa libmysqlclient Objective-C Cocoa 環境と互換性があります。 http://mysql-cocoa.sourceforge.net/を参照してください
D MySQL for D libmysqlclient MySQL for D を参照してください。
Eiffel Eiffel MySQL libmysqlclient セクション29.13「MySQL Eiffel ラッパー」を参照してください。
Erlang erlang-mysql-driver libmysqlclient erlang-mysql-driver」を参照してください。
Haskell Haskell MySQL バインディング ネイティブドライバ Brian O'Sullivan のピュア Haskell MySQL バインディングに関するドキュメントを参照してください。
hsql-mysql libmysqlclient 「Haskell 用の MySQL ドライバ」を参照してください。
Java/JDBC Connector/J ネイティブドライバ MySQL Connector/J 5.1 Developer Guideを参照してください。
Kaya MyDB libmysqlclient MyDB に関するドキュメントを参照してください。
Lua LuaSQL libmysqlclient LuaSQL を参照してください。
.NET/Mono Connector/NET ネイティブドライバ MySQL Connector/NET Developer Guide」を参照してください。
Objective Caml OBjective Caml MySQL バインディング libmysqlclient Objective Caml 用の MySQL バインディングに関するドキュメントを参照してください。
Octave GNU Octave 用データベースバインディング libmysqlclient GNU Octave 用データベースバインディングに関するドキュメントを参照してください。
ODBC Connector/ODBC libmysqlclient MySQL Connector/ODBC Developer Guide」を参照してください。
Perl DBI/DBD::mysql libmysqlclient セクション29.9「MySQL Perl API」を参照してください。
Net::MySQL ネイティブドライバ CPAN の「Net::MySQL」を参照してください。
PHP mysqlext/mysql インタフェース (非推奨) libmysqlclient Original MySQL API」を参照してください。
mysqliext/mysqli インタフェース libmysqlclient MySQL Improved Extension」を参照してください。
PDO_MYSQL libmysqlclient MySQL Functions (PDO_MYSQL)」を参照してください。
PDO mysqlnd ネイティブドライバ
Python Connector/Python ネイティブドライバ MySQL Connector/Python Developer Guide」を参照してください。
Python Connector/Python C 拡張機能 libmysqlclient MySQL Connector/Python Developer Guide」を参照してください。
MySQLdb libmysqlclient セクション29.10「MySQL Python API」を参照してください。
Ruby MySQL/Ruby libmysqlclient libmysqlclient を使用します。 セクション29.11.1「MySQL/Ruby API」を参照してください。
Ruby/MySQL ネイティブドライバ セクション29.11.2「Ruby/MySQL API」を参照してください。
Scheme Myscsh libmysqlclient Myscsh に関するドキュメントを参照してください。
SPL sql_mysql libmysqlclient SPL の sql_mysql を参照してください。
Tcl MySQLtcl libmysqlclient セクション29.12「MySQL Tcl API」を参照してください。


関連キーワード:  Connector, 参照, libmysqlclient, 接続, ネイティブドライバ, 提供, アプリケーション, インタフェース, 言語, バインディング