目录
- 31.1 MySQL Connector/C++
- 31.2 MySQL Connector/J
- 31.3 MySQL Connector/NET
- 31.4 MySQL Connector/ODBC
- 31.5 MySQL Connector/Python
- 31.6 MySQL Connector/Node.js
- 31.7 MySQL C API
- 31.8 MySQL PHP API
- 31.9 MySQL Perl API
- 31.10 MySQL Python API
- 31.11 MySQL Ruby API
- 31.12 MySQL Tcl API
- 31.13 MySQL Eiffel Wrapper
MySQL 连接器提供了对 MySQL 服务器的连接性,以便客户端程序使用。API 提供了对 MySQL 资源的低级访问,使用经典的 MySQL 协议或 X 协议。连接器和 API 都使您能够从另一种语言或环境中连接和执行 MySQL 语句,包括 ODBC、Java(JDBC)、C++、Python、Node.js、PHP、Perl、Ruby 和 C。
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 Protocol 连接到 MySQL。Connector/Node.js 支持管理数据库会话和模式、使用 MySQL 文档存储集合和原始 SQL 语句。
MySQL C API
要在 C 应用程序中直接访问 MySQL,可以使用 C API,它提供了对 MySQL 客户端/服务器协议的低级访问,通过 libmysqlclient
客户端库。这是连接到 MySQL 服务器实例的主要方法,用于 MySQL 命令行客户端和许多 MySQL 连接器和第三方 API。
libmysqlclient
包含在 MySQL 发行版中。
另请参阅 MySQL C API 实现。
要从 C 应用程序访问 MySQL 或为不支持的语言构建 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 APIs和接口”列出了许多可用于MySQL的库和接口。
表 31.1 MySQL API 和接口
环境 | API | 类型 | 备注 |
---|---|---|---|
Ada | GNU Ada MySQL 绑定 | libmysqlclient |
请参阅 MySQL 绑定 for GNU Ada |
C | C API | libmysqlclient |
请参阅 MySQL 8.3 C API 开发者指南。 |
C++ | Connector/C++ | libmysqlclient |
请参阅 MySQL Connector/C++ 8.3 开发者指南。 |
MySQL++ | libmysqlclient |
请参阅 MySQL++ 网站。 | |
MySQL 包装 | libmysqlclient |
请参阅 MySQL 包装。 | |
Cocoa | MySQL-Cocoa | libmysqlclient |
与 Objective-C Cocoa 环境兼容。请参阅 http://mysql-cocoa.sourceforge.net/ |
D | MySQL for D | libmysqlclient |
请参阅 MySQL for D。 |
Eiffel | Eiffel MySQL | libmysqlclient |
请参阅 第 31.13 节,“MySQL Eiffel 包装器”。 |
Erlang | erlang-mysql-driver |
libmysqlclient |
请参阅 erlang-mysql-driver 。 |
Haskell | Haskell MySQL 绑定 | Native Driver | 请参阅 Brian O'Sullivan 的纯 Haskell MySQL 绑定。 |
hsql-mysql |
libmysqlclient |
请参阅 MySQL 驱动程序 for Haskell。 | |
Java/JDBC | Connector/J | Native Driver | 请参阅 MySQL Connector/J 8.1 开发者指南。 |
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 |
本机驱动程序 | 请参阅 Net::MySQL 在 CPAN 上。 |
|
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 APIs”。 |
Scheme | Myscsh |
libmysqlclient |
见 Myscsh 。 |
SPL | sql_mysql |
libmysqlclient |
见 sql_mysql for SPL。 |
Tcl | MySQLtcl | libmysqlclient |
见 第 31.12 节,“MySQL Tcl API”。 |