# 第29章连接器和API
目录
MySQL连接器为客户端程序提供与MySQL服务器的连接。API使用经典的MySQL协议或X协议提供对MySQL资源的低级访问。连接器和API都使您能够连接和执行来自另一种语言或环境的MySQL语句,包括ODBC、java(JDBC)、C++、Python、Node。js、PHP、Perl、Ruby和C。
# MySQL连接器
Oracle开发了许多连接器:
连接器/C++ (opens new window)使C++应用程序能够连接到MySQL。
连接器/J (opens new window)为使用标准Java数据库连接(JDBC)API从Java应用程序连接到MySQL提供驱动程序支持。
连接器/网络 (opens new window)使开发人员能够创建。NET应用程序连接到MySQL。Connector/NET实现了一个功能齐全的ADO。NET接口,并提供与ADO一起使用的支持。支持NET的工具。使用Connector/NET的应用程序可以用任何受支持的语言编写。网络语言。
用于VisualStudio的MySQL (opens new window)与Connector/NET和Microsoft Visual Studio 2012、2013、2015和2017合作。MySQL for Visual Studio提供了从Visual Studio访问MySQL对象和数据的功能。作为一个VisualStudio包,它直接集成到Server Explorer中,提供了创建新连接和使用MySQL数据库对象的能力。
连接器/ODBC (opens new window)为使用开放数据库连接(ODBC)API连接MySQL提供驱动程序支持。支持Windows、Unix和macOS平台上的ODBC连接。
连接器/Python (opens new window)提供驱动程序支持,使用符合Python DB API 2.0版 (opens new window)。不需要额外的Python模块或MySQL客户端库。
连接器/节点。js
提供用于从节点连接到MySQL的异步API。js应用程序使用X协议。连接器/节点。js支持管理数据库会话和模式,使用MySQL文档存储集合和原始SQL语句。
# MySQL C API
要在C应用程序中直接使用MySQL,请C API (opens new window)通过libmysqlclient
客户端库。这是连接MySQL服务器实例的主要方法,MySQL命令行客户端和这里详细介绍的许多MySQL连接器和第三方API都使用这种方法。
libmysqlclient
包含在MySQL发行版中。
另见MySQL C API实现 (opens new window).
要从C应用程序访问MySQL,或者为本章中连接器或API不支持的语言构建MySQL接口C API (opens new window)从哪里开始。许多程序员的实用程序可以帮助完成这个过程;看见第4.7节,“程序开发实用程序”.
# 第三方MySQL API
本章中描述的其余API提供了从特定应用程序语言到MySQL的接口。这些第三方解决方案不由Oracle开发或支持。此处提供的有关其用法和功能的基本信息仅供参考。
所有第三方语言API都是使用以下两种方法之一开发的:libmysqlclient
或者通过实现本机驱动程序。这两种解决方案提供了不同的好处:
使用*
libmysqlclient
*与MySQL完全兼容,因为它使用与MySQL客户端应用程序相同的库。但是,功能集仅限于通过libmysqlclient
由于数据是在本机语言和MySQL API组件之间复制的,因此性能可能会更低。本地司机是完全在主机语言或环境中实现的MySQL网络协议。本机驱动程序速度很快,因为组件之间的数据复制较少,而且它们可以提供标准MySQL API无法提供的高级功能。对于最终用户来说,本机驱动程序也更容易构建和部署,因为构建本机驱动程序组件不需要MySQL客户端库的副本。
表29.1,“MySQL API和接口”列出了MySQL可用的许多库和接口。
表29.1 MySQL API和接口
环境 | 美国石油学会 | 类型 | 笔记 |
---|---|---|---|
艾达 | GNU Ada MySQL绑定 | libmysqlclient | 看见GNU Ada的MySQL绑定 (opens new window) |
C | C API | libmysqlclient | 看见MySQL 8.0 API开发人员指南 (opens new window). |
C++ | 连接器/C++ | libmysqlclient | 看见MySQL Connector/C++8.0开发者指南 (opens new window). |
MySQL++ | libmysqlclient | 这个MySQL++网站 (opens new window). | |
MySQL包装 | libmysqlclient | 这个MySQL包装 (opens new window). | |
可可 | MySQL可可粉 | libmysqlclient | 与Objective-C可可环境兼容。这个http://mysql-cocoa.sourceforge.net/ (opens new window) |
D | MySQL for D | libmysqlclient | 这个MySQL for D (opens new window). |
艾菲尔 | 埃菲尔铁塔 | libmysqlclient | 这个第29.13节“MySQL埃菲尔包装”. |
二郎 | erlang mysql驱动程序 | libmysqlclient | 看见erlang mysql驱动程序 . (opens new window) |
哈斯克尔 | Haskell MySQL绑定 | 本机驱动程序 | 看见Brian O'Sullivan的纯Haskell MySQL绑定 (opens new window). |
hsql mysql | libmysqlclient | 看见Haskell的MySQL驱动程序 (opens new window). | |
Java/JDBC | 连接器/J | 本机驱动程序 | 看见MySQL连接器/J 5.1开发者指南 (opens new window). |
卡娅 | 专用数据 | libmysqlclient | 看见专用数据 (opens new window). |
卢阿 | LuaSQL | libmysqlclient | 看见LuaSQL (opens new window). |
.NET/Mono | 连接器/网络 | 本机驱动程序 | 看见MySQL连接器/网络开发者指南 (opens new window). |
目标摄像机 | 目标Caml MySQL绑定 | libmysqlclient | 看见用于目标Caml的MySQL绑定 (opens new window). |
八度 | GNU倍频程的数据库绑定 | libmysqlclient | 看见GNU倍频程的数据库绑定 (opens new window). |
ODBC | 连接器/ODBC | libmysqlclient | 看见MySQL连接器/ODBC开发人员指南 (opens new window). |
Perl | DBI /DBD::mysql | libmysqlclient | 看见第29.9节,“MySQL Perl API”. |
Net::MySQL | 本机驱动程序 | 看见Net::MySQL (opens new window)在CPAN | |
PHP | mysql , ext/mysql 接口(已弃用) | libmysqlclient | 看见原始MySQL API (opens new window). |
mysqli , ext/mysqli 界面 | libmysqlclient | 看见MySQL改进的扩展 (opens new window). | |
PDO_MYSQL | libmysqlclient | 看见MySQL函数(PDO)_(MYSQL) (opens new window). | |
PDO mysqlnd | 本机驱动程序 | ||
Python | 连接器/Python | 本机驱动程序 | 看见MySQL连接器/Python开发人员指南 (opens new window). |
Python | 连接器/Python C扩展 | libmysqlclient | 看见MySQL连接器/Python开发人员指南 (opens new window). |
MySQLdb | libmysqlclient | 看见第29.10节,“MySQL Python API”. | |
红宝石 | mysql2 | libmysql客户端 | 用途libmysql客户端 .看第 29.11 节,“MySQL Ruby API”. |
方案 | Myscsh | libmysql客户端 | 看Myscsh (opens new window). |
声压级 | sql_mysql | libmysql客户端 | 看sql_mysql 声压级 (opens new window). |
Tcl | MySQLtcl | libmysql客户端 | 看第 29.12 节,“MySQL Tcl API”. |