MySQL 9.0 參考手冊  /  連接器和 API

第 31 章 連接器和 API

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 9.0 C API 開發人員指南
C++ Connector/C++ libmysqlclient 請參閱 MySQL Connector/C++ 9.0 開發人員指南
MySQL++ libmysqlclient 請參閱 MySQL++ 網站
MySQL wrapped libmysqlclient 請參閱 MySQL wrapped
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 mysqlext/mysql 介面 (已棄用) libmysqlclient 請參閱 MySQL 和 PHP
mysqliext/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」