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 来创建连接对象。

