TypeORM - Connection API

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

创建新连接

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

ormconfig.json

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

这里,

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

createConnection

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

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 文件中指定的 firstconnection 的配置详细信息来创建连接对象。

TypeORM 还提供了另一个 API,createConnections 可以一次创建多个连接,然后在需要时使用它,如下所示 −

import { createConnections, Connection } from "typeorm";

const connections: Connection[] = await createConnections([

]);

这里,

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

ConnectionManager

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

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

const connectionManager = getConnectionManager(); 

const connection = connectionManager.create({ 

}); 
await connection.connect();

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