此类用于生成和获取有关会话 (Session 对象) 的信息。要创建实例,请使用 Node.js require() 函数,并使用驱动程序名称,如下所示
var nosql = require("mysql-js");
ConnectionProperties 可用于检索或设置给定会话的连接属性。您可以使用 ConnectionProperties 构造函数获取给定适配器的默认连接属性的完整集合,如下所示,将适配器名称(字符串)用作 nameOrProperties 的值
ConnectionProperties(nameOrProperties);
您还可以通过向新的 ConnectionProperties 对象提供属性名称和值的列表,而不是适配器名称来创建自己的 ConnectionProperties 对象。然后,您可以使用此对象为新会话设置连接属性,如下所示
var NdbConnectionProperties = {
"implementation" : "ndb",
"ndb_connectstring" : "localhost:1186",
"database" : "test",
"mysql_user" : "root",
"ndb_connect_retries" : 4,
"ndb_connect_delay" : 5,
"ndb_connect_verbose" : 0,
"linger_on_close_msec": 500,
"use_ndb_async_api" : false,
"ndb_session_pool_min" : 4,
"ndb_session_pool_max" : 100,
};
var sharePath = '/usr/local/mysql/share/nodejs'; // path to share/nodejs
var nosql = require(sharePath);
var dbProperties = nosql.ConnectionProperties(NdbConnectionProperties);
您还可以获取具有适配器默认连接属性的对象,然后更新其中一些属性,然后使用修改后的对象为会话设置连接属性,如下所示
var sharePath = '/usr/local/mysql/share/nodejs'; // path to share/nodejs
var spi = require(sharePath + "/Adapter/impl/SPI"); // under share/nodejs
var serviceProvider = spi.getDBServiceProvider('ndb');
var NdbConnectionProperties = serviceProvider.getDefaultConnectionProperties();
NdbConnectionProperties.mysql_user = 'nodejs_user';
NdbConnectionProperties.database = 'my_nodejs_db';
var dbProperties = nosql.ConnectionProperties(NdbConnectionProperties);
ConnectionProperties 对象包含以下属性
implementation: 对于使用 NDB Cluster 的 Node.js 应用程序,这始终是 “ndb”.ndb_connectstring: 用于连接到管理服务器的 NDB Cluster 连接字符串。database: 要使用的 MySQL 数据库的名称。mysql_user: MySQL 用户名。ndb_connect_retries: 在超时前重试失败连接的次数;使用小于 0 的数字来持续重试连接,永不停止。ndb_connect_delay: 连接重试之间的间隔(以秒为单位)。ndb_connect_verbose: 1 或 0;1 启用连接期间的额外控制台输出。linger_on_close_msec: 当客户端关闭DBConnectionPool时,底层连接将保持打开状态,持续时间为这些毫秒,以防其他客户端尝试重用它。use_ndb_async_api: 如果为 true,则使用异步调用执行某些操作以提高并发性。如果为 false,则在传输中的操作数量限制为每个工作线程一个。ndb_session_pool_min: 每个NdbConnectionPool的DBSession对象的最小数量。-
ndb_session_pool_max: 每个NdbConnectionPool的DBSession对象的最大数量。每个
NdbConnectionPool都维护一个DBSession对象池,以及它们的底层Ndb对象。此参数与ndb_session_pool_min一起为该池的大小设置指导原则。
TableMapping 构造函数也可以作为顶级函数使用。您可以通过名称获取映射,或者使用现有映射
TableMapping(tableName);
TableMapping(tableMapping);
openSession(properties, mappings, Function(err, Session) callback);
连接到数据源并在 callback 函数中获取 Session。这等效于调用 connect()(参见本节后面部分),然后在回调函数中返回的 SessionFactory 上调用 getSession()。
执行此方法可能会导致连接到网络上的许多其他节点,等待它们准备好,并向它们发出多个请求。出于此原因,您应避免不必要地打开新会话。
properties 对象的 implementation 成员确定 Session 的实现。
如果 mappings 未定义、为 null 或为空数组,则不会加载或验证任何映射。在这种情况下,任何所需的映射将在执行期间根据需要加载和验证。如果 mappings 包含字符串或构造函数,则表的元数据(或映射的表)将从数据库中加载,并根据映射的要求进行验证。
可以将多个表和构造函数作为数组中的元素传递给 openSession()。
connect(properties, mappings, Function(err, SessionFactory) callback);
连接到数据源以在 callback 函数中获取 SessionFactory。为了获取 Session,您必须在此 SessionFactory 上调用 getSession(),其实现由 properties 对象的 implementation 成员决定。
如果 mappings 未定义、为 null 或为空数组,则不会加载或验证任何映射。在这种情况下,任何所需的映射将根据需要加载和验证。如果 mappings 包含字符串或构造函数,则表的元数据(或映射的表)将从数据库中加载,并根据映射的要求进行验证。
可以将多个表和构造函数作为数组中的元素传递。
Array getOpenSessionFactories()
获取由该模块创建的所有 SessionFactory 对象的数组。
以下函数是公共 API 的一部分,但并非专为应用程序使用而设计。它们构成了 Mynode 和 SessionFactory 之间契约的一部分。
Connection()getConnectionKey()getConnection()newConnection()deleteFactory()