下载本手册

4.1.2 Java和NDB集群

一个NDB集群定义为一个或多个MySQL服务器提供访问NDBCLUSTER存储引擎—即一组NDB集群数据节点(ndbd流程)。从Java到的主要访问路径有三种NDBCLUSTER,列出如下:

  • JDBC和mysqld。JDBC通过向MySQL服务器发送SQL语句并返回结果集来工作。使用JDBC时,必须编写SQL、管理连接并从结果集中复制希望在程序中作为对象使用的任何数据。最常用于MySQL服务器的JDBC实现是MySQL连接器/ J

  • Java Persistence API (JPA)和JDBC。JPA使用JDBC连接到MySQL服务器。与JDBC不同,JPA提供了数据库中数据的对象视图。

  • ClusterJ。ClusterJ使用JNI桥接到NDB API如欲直接查阅NDBCLUSTER.它采用了一种基于域对象模型的数据访问风格,在许多方面与JPA所采用的类似。ClusterJ不依赖于MySQL Server进行数据访问。

这些路径如下面的API堆栈图所示:

图4.1 Java访问NDB的路径

Java访问NDB的路径

JDBC和mysqld。Connector/J通过MySQL JDBC驱动程序提供标准访问。使用Connector/J,可以编写JDBC应用程序与作为NDB集群SQL节点的MySQL服务器一起工作,就像其他Connector/J应用程序与任何其他MySQL服务器实例一起工作一样。

有关更多信息,请参见第4.2.3节,“在NDB集群中使用连接器/J”

ClusterJ。ClusterJ是一个本地Java连接器NDBCLUSTER(或NDB), NDB集群的存储引擎,样式为HibernateJPA,JDO.与其他持久性框架一样,ClusterJ使用数据映射器模式,其中数据表示为域对象,与业务逻辑分离,将Java类映射到存储在数据库中的数据库表NDBCLUSTER存储引擎。

请注意

NDBCLUSTER存储引擎通常被简称为(在MySQL文档和其他地方)10bet官方网站NDB.条款NDB而且NDBCLUSTER是同义的,你可以使用任何一个引擎= NDB引擎= NDBCLUSTER在一个创建表语句创建集群表。

ClusterJ不需要连接到mysqld进程,有直接访问NDBCLUSTER使用包含在动态库中的JNI桥接libnbdclient.但是,与JDBC不同,ClusterJ不支持表创建和其他数据定义操作;这些必须通过其他方法来执行,例如JDBC或mysql客户端。此外,ClusterJ仅限于对单个表的查询,不支持关系或继承;如果需要在应用程序中支持这些特性,则应该使用另一种访问路径。