MySQL 8.4 參考手冊  /  連接器和 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 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 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」