目錄
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」。 |