TypeORM - 连接 API


为了与数据库交互,我们需要一个到数据库的连接对象。我们需要在执行数据库操作之前创建一个连接对象,并且在数据库操作完成后必须终止它。本节我们来了解一下TypeORM提供的Connection API。

创建新连接

在创建新连接之前,我们需要在ormconfig.json配置文件中配置数据库连接详细信息。连接详细信息示例如下所示 -

ormconfig.json

{ 
   name: "firstconnection", 
   type: "mysql", 
   host: "localhost", 
   port: 3306, 
   username: "root", 
   password: "root", 
   database: "firstDB" 
}

这里,

  • name - 数据库连接的名称。
  • type - 数据库类型。
  • host - 数据库服务器的主机名。
  • port - 数据库服务器端口。
  • username - 有权访问数据库的帐户名。
  • 密码- 上述帐户的密码。
  • 数据库- 要连接的数据库的名称。

创建连接

TypeORM 提供的CreateConnection方法用于创建新连接。它的定义如下,

import { createConnection, Connection } from "typeorm"; 

const connection = await createConnection({ 

});

在这里,createConnection将使用 ormconfig.json 文件中指定的配置详细信息。

或者,您可以将连接 URL 定义为 createConnection 方法的参数,如下所示 -

const connection = createConnection({ type: 'mysql', 
     url: 'localhost:8888/firstDB' 
})

这里,

createConnection返回一个对象,该对象可用于打开/关闭与数据库的连接。

多个连接

TypeORM 还提供了创建多个数据库连接的选项。首先,配置文件ormconfig.json可用于指定多个数据库连接的详细信息。让我们在 ormconfig.json 中配置多个数据库,如下所示,

ormconfig.json

{  name: "firstconnection", 
   type: "mysql", 
   host: "localhost", 
   port: 3306, 
   username: "root", 
   password: "root", 
   database: "firstDB" 
}, 
{  name: "secondconnection", 
   type: "mysql", 
   host: "localhost", 
   port: 3306, 
   username: "root", 
   password: "root", 
   database: "secondDB" 
}, 
{  name: "thirdconnection", 
   type: "mysql", 
   host: "localhost", 
   port: 3306, 
   username: "root", 
   password: "root", 
   database: "thirdDB" 
}

现在,我们可以使用 createConnection 方法提供的参数来指定连接的名称来创建连接对象,如下所示 -

const firstconnection: Connection = await createConnection("firstconnection");

这里,

createConnection将使用ormconfig.json文件中指定的第一个连接的配置详细信息来创建连接对象。

TypeORM 还提供了另一个 API,createConnections 来一次性创建多个连接,然后在必要时使用它,如下所示 -

import { createConnections, Connection } from "typeorm"; 

const connections: Connection[] = await createConnections([ 

]);

这里,

连接将所有连接对象保存为数组。

连接管理器

TypeORM还提供了另一个API,connectionManager来创建连接。它的定义如下 -

import {getConnectionManager, ConnectionManager, Connection} from "typeorm"; 

const connectionManager = getConnectionManager(); 

const connection = connectionManager.create({ 

}); 
await connection.connect();

TypeORM 更喜欢使用createConnection而不是ConnectionManager来创建连接对象。