目錄
MySQL 連接器為用戶端程式提供與 MySQL 伺服器的連線能力。API 提供使用傳統 MySQL 通訊協定或 X 通訊協定來低階存取 MySQL 資源的能力。連接器和 API 都可讓您從其他語言或環境(包括 ODBC、Java (JDBC)、C++、Python、Node.js、PHP、Perl、Ruby 和 C)連線並執行 MySQL 陳述式。
MySQL 連接器
Oracle 開發了許多連接器
Connector/C++ 讓 C++ 應用程式能夠連線到 MySQL。
Connector/J 提供驅動程式支援,讓 Java 應用程式可以使用標準 Java 資料庫連線能力 (JDBC) API 來連線到 MySQL。
Connector/NET 讓開發人員能夠建立連線到 MySQL 的 .NET 應用程式。Connector/NET 實作完整功能的 ADO.NET 介面,並提供與支援 ADO.NET 的工具搭配使用的支援。使用 Connector/NET 的應用程式可以使用任何支援的 .NET 語言編寫。
Connector/ODBC 提供驅動程式支援,讓您可以使用開放資料庫連線能力 (ODBC) API 來連線到 MySQL。Windows、Unix 和 macOS 平台都提供 ODBC 連線能力支援。
Connector/Python 提供驅動程式支援,讓 Python 應用程式可以使用符合 Python DB API 2.0 版的 API 來連線到 MySQL。不需要額外的 Python 模組或 MySQL 用戶端程式庫。
Connector/Node.js提供非同步 API,讓 Node.js 應用程式可以使用 X 通訊協定來連線到 MySQL。Connector/Node.js 支援管理資料庫工作階段和綱要、使用 MySQL 文件儲存集合,以及使用原始 SQL 陳述式。
MySQL C API
若要直接在 C 應用程式中使用原生 MySQL,C API 會透過 libmysqlclient 用戶端程式庫提供對 MySQL 用戶端/伺服器通訊協定的低階存取。這是連線到 MySQL 伺服器執行個體的主要方法,MySQL 命令列用戶端和此處詳述的許多 MySQL 連接器和協力廠商 API 都會使用此方法。
libmysqlclient 包含在 MySQL 發行版本中。
另請參閱 MySQL C API 實作。
若要從 C 應用程式存取 MySQL,或為本章的連接器或 API 不支援的語言建置 MySQL 介面,則應該從 C API 開始。有許多程式設計工具可協助此程序;請參閱 第 6.7 節〈程式開發工具〉。
協力廠商 MySQL API
本章描述的其餘 API 提供從特定應用程式語言存取 MySQL 的介面。這些協力廠商解決方案不是由 Oracle 開發或支援。此處僅為參考目的提供有關其用法和功能的基礎資訊。
所有協力廠商語言 API 都是使用兩種方法之一開發:使用 libmysqlclient 或實作原生驅動程式。這兩種解決方案提供不同的優點
使用
libmysqlclient可提供與 MySQL 的完整相容性,因為它使用與 MySQL 用戶端應用程式相同的程式庫。不過,功能集會受限於libmysqlclient所公開的實作和介面,而且由於在原生語言和 MySQL API 元件之間複製資料,效能可能會降低。原生驅動程式 是完全在主機語言或環境中實作的 MySQL 網路通訊協定。由於元件之間複製的資料較少,因此原生驅動程式速度很快,而且它們可以提供標準 MySQL API 無法提供的進階功能。原生驅動程式也更容易讓終端使用者建置和部署,因為建置原生驅動程式元件時不需要 MySQL 用戶端程式庫的複本。
表格 31.1〈MySQL API 和介面〉列出許多可供 MySQL 使用的程式庫和介面。
表格 31.1 MySQL API 和介面
| 環境 | API | 類型 | 附註 |
|---|---|---|---|
| Ada | GNU Ada MySQL 繫結 | libmysqlclient |
請參閱 適用於 GNU Ada 的 MySQL 繫結 |
| C | C API | libmysqlclient |
請參閱 MySQL 8.4 C API 開發人員指南。 |
| C++ | Connector/C++ | libmysqlclient |
請參閱 MySQL Connector/C++ 9.0 開發人員指南。 |
| MySQL++ | libmysqlclient |
請參閱 MySQL++ 網站。 | |
| MySQL 包裝 | libmysqlclient |
請參閱 MySQL 包裝。 | |
| Cocoa | MySQL-Cocoa | libmysqlclient |
與 Objective-C Cocoa 環境相容。請參閱 http://mysql-cocoa.sourceforge.net/ |
| D | 適用於 D 的 MySQL | libmysqlclient |
請參閱 適用於 D 的 MySQL。 |
| Eiffel | Eiffel MySQL | libmysqlclient |
請參閱 第 31.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 開發人員指南。 |
| Kaya | MyDB | libmysqlclient |
請參閱 MyDB。 |
| Lua | LuaSQL | libmysqlclient |
請參閱 LuaSQL。 |
| .NET/Mono | Connector/NET | 原生驅動程式 | 請參閱 MySQL Connector/NET 開發人員指南。 |
| Objective Caml | Objective Caml MySQL 繫結 | libmysqlclient |
請參閱 適用於 Objective Caml 的 MySQL 繫結。 |
| Octave | GNU Octave 的資料庫綁定 | libmysqlclient |
請參閱GNU Octave 的資料庫綁定。 |
| ODBC | Connector/ODBC | libmysqlclient |
請參閱MySQL Connector/ODBC 開發者指南。 |
| Perl | DBI/DBD::mysql |
libmysqlclient |
請參閱第 31.9 節「MySQL Perl API」。 |
Net::MySQL |
原生驅動程式 | 請參閱 CPAN 上的 Net::MySQL |
|
| PHP | mysql、ext/mysql 介面 (已棄用) |
libmysqlclient |
請參閱MySQL 與 PHP。 |
mysqli、ext/mysqli 介面 |
libmysqlclient |
請參閱MySQL 與 PHP。 | |
PDO_MYSQL |
libmysqlclient |
請參閱MySQL 與 PHP。 | |
| PDO mysqlnd | 原生驅動程式 | ||
| Python | Connector/Python | 原生驅動程式 | 請參閱MySQL Connector/Python 開發者指南。 |
| Python | Connector/Python C 擴充 | libmysqlclient |
請參閱MySQL Connector/Python 開發者指南。 |
| MySQLdb | libmysqlclient |
請參閱第 31.10 節「MySQL Python API」。 | |
| Ruby | mysql2 | libmysqlclient |
使用 libmysqlclient。請參閱第 31.11 節「MySQL Ruby API」。 |
| Scheme | Myscsh |
libmysqlclient |
請參閱Myscsh。 |
| SPL | sql_mysql |
libmysqlclient |
請參閱 SPL 的 sql_mysql。 |
| Tcl | MySQLtcl | libmysqlclient |
請參閱第 31.12 節「MySQL Tcl API」。 |