跳转到主要内容

使用 Query Runner

什么是 QueryRunner

每个新的 QueryRunner 实例从连接池中获取一个连接,如果 RDBMS 支持连接池的话。 对于不支持连接池的数据库,它会在整个数据源中使用同一个连接。

创建新的 QueryRunner 实例

使用 createQueryRunner 方法创建一个新的 QueryRunner 实例:

const queryRunner = dataSource.createQueryRunner()

使用 QueryRunner

创建 QueryRunner 实例后,使用 connect 方法实际从连接池获取连接:

const queryRunner = dataSource.createQueryRunner()
await queryRunner.connect()

重要:确保在不再需要时释放连接,以便将其重新放回连接池中:

await queryRunner.release()

连接释放后,将无法再使用查询运行器方法。

QueryRunner 有一系列可以使用的方法,它还有自己的 EntityManager 实例, 通过 manager 属性,可以在 QueryRunner 实例上运行 EntityManager 的方法,以在特定的数据库连接上执行操作:

const queryRunner = connection.createQueryRunner()

// 从连接池中获取一个连接
await queryRunner.connect()

// 使用该连接执行查询
const users = await queryRunner.manager.find(User)

// 使用完毕后不要忘记释放连接
await queryRunner.release()