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 开发了许多连接器:

  1. Connector/C 允许 C 应用程序连接到 MySQL。

  2. Connector/J 提供了使用标准 Java 数据库连接 (JDBC) API 从 Java 应用程序连接到 MySQL 的驱动程序支持。

  3. Connector/NET 允许开发者创建连接到 MySQL 的 .NET 应用程序。Connector/NET 实施了一个全功能的 ADO.NET 接口,并提供了对使用 ADO.NET 感知工具的支持。使用 Connector/NET 的应用程序可以使用任何受支持的 .NET 语言编写。

  4. Connector/ODBC 提供了使用开放数据库连接 (ODBC) API 连接到 MySQL 的驱动程序支持。来自 Windows、Unix 和 macOS 平台的 ODBC 连接得到了支持。

  5. Connector/Python 提供了使用与 Python DB API version 2.0 兼容的 API,从 Python 应用程序中连接到 MySQL 的驱动程序支持。不需要额外的 Python 模块或 MySQL 客户端库。

  6. 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_或通过实现本机驱动程序这两种方法之一开发的。这两种解决方案提供了不同的好处:

  1. 使用 libmysqlclient 提供了与 MySQL 完全的兼容性,因为它使用了与 MySQL 客户端应用程序相同的库。但是,功能集仅限于 libmysqlclient 中公开的实现和接口,而且由于数据在本地语言和 MySQL API 组件之间被复制,因此性能可能会降低。

  2. _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

MySQL Bindings for GNU Ada

C

C API

libmysqlclient

MySQL 9.0 C API Developer Guide

C++

Connector/C++

libmysqlclient

MySQL Connector/C++ 9.0 Developer Guide

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

Section 31.13, “MySQL Eiffel Wrapper”

Erlang

erlang-mysql-driver

libmysqlclient

See erlang-mysql-driver.

Haskell

Haskell MySQL Bindings

Native Driver

Brian O’Sullivan’s pure Haskell MySQL bindings

hsql-mysql

libmysqlclient

MySQL driver for Haskell

Java/JDBC

Connector/J

Native Driver

MySQL Connector/J Developer Guide

Kaya

MyDB

libmysqlclient

See MyDB.

Lua

LuaSQL

libmysqlclient

See LuaSQL.

.NET/Mono

Connector/NET

Native Driver

MySQL Connector/NET Developer Guide

Objective Caml

OBjective Caml MySQL Bindings

libmysqlclient

MySQL Bindings for Objective Caml

Octave

GNU Octave 的数据库绑定

libmysqlclient

Database bindings for GNU Octave

ODBC

Connector/ODBC

libmysqlclient

MySQL Connector/ODBC Developer Guide

Perl

DBI/DBD::mysql

libmysqlclient

Section 31.9, “MySQL Perl API”

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

MySQL Connector/Python Developer Guide

Python

Connector/Python C Extension

libmysqlclient

MySQL Connector/Python Developer Guide

MySQLdb

libmysqlclient

Section 31.10, “MySQL Python API”

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

Section 31.12, “MySQL Tcl API”