MySql 中文参考指南
Chapter 31 Connectors and APIs
目录
MySQL Connectors 为客户端程序提供与 MySQL 服务器的连接。API 通过经典 MySQL 协议或 X 协议提供对 MySQL 资源的低级访问。无论采用哪种方法,Connectors 和 API 都使您能够通过其他语言或环境连接和执行 MySQL 语句,包括 ODBC、Java (JDBC)、C++、Python、Node.js、PHP、Perl、Ruby 和 C。
MySQL Connectors
Oracle 开发了许多连接器:
-
Connector/C 允许 C 应用程序连接到 MySQL。
-
Connector/J 提供了使用标准 Java 数据库连接 (JDBC) API 从 Java 应用程序连接到 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 DB API version 2.0 兼容的 API,从 Python 应用程序中连接到 MySQL 的驱动程序支持。不需要额外的 Python 模块或 MySQL 客户端库。
-
Connector/Node.js 提供了一个异步 API,用于通过 X 协议从 Node.js 应用程序连接到 MySQL。Connector/Node.js 支持管理数据库会话和架构,处理 MySQL Document Store 集合,并使用原始 SQL 语句。
The MySQL C API
为了直接在 C 应用程序中以本机方式使用 MySQL, C API 通过 libmysqlclient 客户端库提供低级访问权限来访问 MySQL 客户端/服务器协议。这是连接到 MySQL 服务器实例的主要方法,MySQL 命令行客户端以及此处详述的许多 MySQL 连接器和第三方 API 都使用此方法。
libmysqlclient 包含在 MySQL 发行版中。
另请参阅 MySQL C API Implementations 。
要从 C 应用程序访问 MySQL,或为本章节中的连接器或 API 不支持的语言构建 MySQL 接口, C API 是起点。提供了一些编程工具来帮助完成此过程;请参见 Section 6.7, “Program Development Utilities” 。
Third-Party MySQL APIs
本章中描述的其余 API 提供了从特定应用程序语言到 MySQL 的接口。这些第三方解决方案不是 Oracle 开发或支持的。仅出于引用目的,此处提供了关于其用法和功能的基本信息。
所有第三方语言 API 都是使用_libmysqlclient_或通过实现本机驱动程序这两种方法之一开发的。这两种解决方案提供了不同的好处:
-
使用 libmysqlclient 提供了与 MySQL 完全的兼容性,因为它使用了与 MySQL 客户端应用程序相同的库。但是,功能集仅限于 libmysqlclient 中公开的实现和接口,而且由于数据在本地语言和 MySQL API 组件之间被复制,因此性能可能会降低。
-
_Native drivers_是在主机语言或环境中 MySQL 网络协议的完全实现。本机驱动程序很快,因为组件之间的数据复制较少,而且它们还可以提供通过标准 MySQL API 无法获得的高级功能。本机驱动程序对于最终用户来说也更容易构建和部署,因为构建本机驱动程序组件不需要 MySQL 客户端库的副本。
Table 31.1, “MySQL APIs and Interfaces” 列出了可用于 MySQL 的许多库和接口。
表 31.1 MySQL API 和接口
Environment |
API |
Type |
Notes |
Ada |
GNU Ada MySQL Bindings |
libmysqlclient |
|
C |
C API |
libmysqlclient |
|
C++ |
Connector/C++ |
libmysqlclient |
|
MySQL++ |
libmysqlclient |
See MySQL website. |
|
MySQL wrapped |
libmysqlclient |
See MySQL wrapped. |
|
Cocoa |
MySQL-Cocoa |
libmysqlclient |
与 Objective-C Cocoa 环境兼容。见 http://mysql-cocoa.sourceforge.net/ |
D |
MySQL for D |
libmysqlclient |
See MySQL for D. |
Eiffel |
Eiffel MySQL |
libmysqlclient |
|
Erlang |
erlang-mysql-driver |
libmysqlclient |
|
Haskell |
Haskell MySQL Bindings |
Native Driver |
|
hsql-mysql |
libmysqlclient |
||
Java/JDBC |
Connector/J |
Native Driver |
|
Kaya |
MyDB |
libmysqlclient |
See MyDB. |
Lua |
LuaSQL |
libmysqlclient |
See LuaSQL. |
.NET/Mono |
Connector/NET |
Native Driver |
|
Objective Caml |
OBjective Caml MySQL Bindings |
libmysqlclient |
|
Octave |
GNU Octave 的数据库绑定 |
libmysqlclient |
|
ODBC |
Connector/ODBC |
libmysqlclient |
|
Perl |
DBI/DBD::mysql |
libmysqlclient |
|
Net::MySQL |
Native Driver |
See Net::MySQL at CPAN |
|
PHP |
mysql, ext/mysql interface (deprecated) |
libmysqlclient |
See MySQL and PHP. |
mysqli, ext/mysqli interface |
libmysqlclient |
See MySQL and PHP. |
|
PDO_MYSQL |
libmysqlclient |
See MySQL and PHP. |
|
PDO mysqlnd |
Native Driver |
||
Python |
Connector/Python |
Native Driver |
|
Python |
Connector/Python C Extension |
libmysqlclient |
|
MySQLdb |
libmysqlclient |
||
Ruby |
mysql2 |
libmysqlclient |
使用 libmysqlclient。见 Section 31.11, “MySQL Ruby APIs” |
Scheme |
Myscsh |
libmysqlclient |
See Myscsh. |
SPL |
sql_mysql |
libmysqlclient |
See sql_mysql for SPL. |
Tcl |
MySQLtcl |
libmysqlclient |