NDB Cluster被定义为
一个或多个 MySQL 服务器,提供对
NDBCLUSTER
存储引擎的访问——即一组 NDB Cluster 数据节点(ndbd
进程)。这里列出了从 Java 到 的三个主要访问路径
NDBCLUSTER
:
JDBC 和 mysqld。 JDBC 通过向 MySQL 服务器发送 SQL 语句并返回结果集来工作。使用 JDBC 时,您必须编写 SQL、管理连接并从结果集中复制您想要在程序中用作对象的任何数据。MySQL 服务器最常使用的 JDBC 实现是MySQL Connector/J。
Java 持久性 API (JPA) 和 JDBC。 JPA 使用 JDBC 连接到 MySQL 服务器。与 JDBC 不同,JPA 提供数据库中数据的对象视图。
集群J。 ClusterJ使用 JNI 桥接NDB API 以直接访问
NDBCLUSTER
. 它采用一种基于域对象模型的数据访问方式,在许多方面类似于 JPA 采用的方式。ClusterJ 不依赖于 MySQL 服务器进行数据访问。
这些路径显示在以下 API 堆栈图中:
JDBC 和 mysqld。 Connector/J 通过 MySQL JDBC 驱动程序提供标准访问。使用 Connector/J,JDBC 应用程序可以编写为与充当 NDB Cluster SQL 节点的 MySQL 服务器一起工作,其方式与其他 Connector/J 应用程序与任何其他 MySQL 服务器实例一起工作的方式大致相同。
有关更多信息,请参阅第 4.2.3 节,“将 Connector/J 与 NDB Cluster 一起使用”。
集群J。
ClusterJ 是
NDBCLUSTER
(或
NDB
)的原生 Java 连接器,NDB Cluster 的存储引擎,采用
Hibernate、
JPA和
JDO的风格。与其他持久性框架一样,ClusterJ 使用
数据映射器模式,其中数据表示为域对象,与业务逻辑分离,将 Java 类映射到
NDBCLUSTER
存储引擎中存储的数据库表。
NDBCLUSTER
存储引擎通常(在 MySQL 文档和其他地方)简称
为NDB
. 术语
NDB
和NDBCLUSTER
是同义词,您可以在
语句中使用ENGINE=NDB
或来创建聚簇表。
ENGINE=NDBCLUSTER
CREATE TABLE
ClusterJ 不需要连接到mysqld
进程,可以直接访问
NDBCLUSTER
使用包含在动态库中的 JNI 桥libnbdclient
。但是,与JDBC不同的是,ClusterJ不支持建表等数据定义操作;这些必须通过其他方式执行,例如 JDBC 或mysql客户端。此外,ClusterJ 仅限于单表查询,不支持关系或继承;如果您需要在您的应用程序中支持这些功能,您应该使用另一种访问路径。