第31章 连接器和 API
目录
- 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 资源的方式,使用 classic MySQL 协议或 X 协议。两者都可以让您从另一个语言或环境中连接并执行 MySQL 语句,包括 ODBC、Java(JDBC)、C++、Python、Node.js、PHP、Perl 和 Ruby。
Oracle 开发了一些连接器:
-
Connector/C++ 允许 C++ 应用程序连接到 MySQL。
-
Connector/J 提供了 Java 应用程序使用标准 JDBC API 连接到 MySQL 的驱动支持。
-
Connector/NET 允许开发者创建 .NET 应用程序连接到 MySQL。Connector/NET 实现了完全功能的 ADO.NET 接口,并提供了使用 ADO.NET aware 工具的支持。使用 Connector/NET 编写的应用程序可以在任何受支持的 .NET 语言中编写。
-
Connector/ODBC 提供了使用 ODBC API 连接到 MySQL 的驱动支持。支持 Windows、Unix 和 macOS 平台的 ODBC 连接。
-
Connector/Python 提供了使用 Python DB API 版本 2.0 compliant 的 API 连接到 MySQL 的驱动支持。无需额外的 Python 模块或 MySQL 客户端库。
-
Connector/Node.js
提供了使用 X 协议连接到 MySQL 的异步 API,用于 Node.js 应用程序。Connector/Node.js 支持管理数据库会话和架构、工作 MySQL 文档存储集合和使用原始 SQL 语句。
MySQL C API 接口
为了在C应用程序中直接访问 MySQL,C API 通过 libmysqlclient
客户端库提供低级别的 MySQL 客户端/服务器协议访问。这个方法用于连接到 MySQL 服务器,既被 MySQL 命令行客户端使用,也被许多 MySQL 连接器和第三方 API 详情在这里。
libmysqlclient
包含在 MySQL 发布包中。
要从 C 应用程序访问 MySQL,或者为不支持 Connectors 或 APIs 的语言构建一个接口,C API 是开始的地方。有许多编程工具可以帮助这个过程;见第 6.7 节,“程序开发工具”。
本章中描述的剩余 API 提供了从特定应用语言访问 MySQL 的接口。这些第三方解决方案不是由 Oracle 开发或支持的。关于它们的使用和能力的基本信息在这里提供,以供参考。
所有第三方语言 API 都是使用一种方法开发的,或者使用 libmysqlclient
,或者实现一个native driver。这两个解决方案提供了不同的优点:
-
使用
libmysqlclient
可以提供完整的MySQL兼容性,因为它使用了同样的库文件和MySQL客户端应用程序。然而,功能集是受实现和libmysqlclient
暴露出的接口限制的,并且性能可能会低于原生语言和MySQL API组件之间的数据拷贝。 -
本地驱动程序是在主机语言或环境中实现MySQL网络协议的实现。 本地驱动程序速度快,因为数据不需要在组件之间拷贝,且可以提供标准MySQL API不可用的高级功能。 本地驱动程序也更容易由用户构建和部署,因为不需要复制MySQL客户端库文件来构建本地驱动程序组件。
表 31.1,“MySQL APIs 和接口” 列出了许多用于 MySQL 的库文件和接口。
表31.1 MySQL API和接口
环境 | API | 类型 | 注意 |
---|---|---|---|
Ada | GNU Ada MySQL Bindings | libmysqlclient |
查看GNU Ada MySQL Bindings |
C | C API | libmysqlclient |
查看MySQL 8.4 C API Developer Guide. |
C++ | Connector/C++ | libmysqlclient |
查看MySQL Connector/C++ 8.4 Developer Guide. |
MySQL++ | libmysqlclient |
查看MySQL++ website. | |
MySQL wrapped | libmysqlclient |
查看MySQL wrapped. | |
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 Wrapper”. |
Erlang | erlang-mysql-driver |
libmysqlclient |
查看erlang-mysql-driver . |
Haskell | Haskell MySQL Bindings | Native Driver | 查看Brian O'Sullivan的纯 Haskell MySQL 绑定. |
hsql-mysql |
libmysqlclient |
查看Haskell MySQL 驱动程序. | |
Java/JDBC | Connector/J | Native Driver | 查看MySQL Connector/J 开发指南. |
Kaya | MyDB | libmysqlclient |
查看MyDB. |
Lua | LuaSQL | libmysqlclient |
查看LuaSQL. |
.NET/Mono | Connector/NET | Native Driver | 查看MySQL Connector/NET 开发指南. |
Objective Caml | OBjective Caml MySQL Bindings | 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 |
Native Driver | 查看Net::MySQL 在CPAN。 |
|
PHP | mysql , ext/mysql 接口(已弃用) |
libmysqlclient |
查看MySQL 和 PHP. |
mysqli , ext/mysqli 接口 |
libmysqlclient |
查看MySQL 和 PHP. | |
PDO_MYSQL |
libmysqlclient |
查看MySQL 和 PHP. | |
PDO mysqlnd | Native Driver | ||
Python | Connector/Python | Native Driver | 查看MySQL Connector/Python 开发指南. |
Python | Connector/Python C Extension | 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”. |