乐闻世界logo
搜索文章和话题

TypeORM 如何批量保存数据?

6 个月前提问
5 个月前修改
浏览次数63

1个答案

1

在 TypeORM 中,批量保存数据通常使用 save() 方法来执行。这个方法可以接收一个实体对象数组,并有效地将它们插入或更新到数据库中。下面是一个具体的例子来说明如何使用 TypeORM 批量保存数据:

假设我们有一个名为 User 的实体,我们需要批量插入多个用户对象到数据库中。

首先,您需要确保已经定义了 User 实体并导入了所需的 TypeORM 模块:

typescript
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column() name: string; @Column() email: string; }

接下来,您可以创建一个用户数组并使用 save() 方法将其保存到数据库中:

typescript
import { createConnection, getRepository } from 'typeorm'; import { User } from './User'; async function saveUsers() { // 创建数据库连接 const connection = await createConnection({ type: "postgres", // 数据库类型 host: "localhost", port: 5432, username: "your_username", password: "your_password", database: "your_database", entities: [ User ], synchronize: true, }); const userRepository = connection.getRepository(User); // 创建用户数据 const users = [ { name: 'Alice', email: 'alice@example.com' }, { name: 'Bob', email: 'bob@example.com' }, { name: 'Charlie', email: 'charlie@example.com' } ]; // 批量保存用户 await userRepository.save(users); console.log('Users have been saved'); } saveUsers().catch(error => console.log(error));

在这个例子中,我们首先建立了一个与数据库的连接,并且确保 User 实体已经同步到数据库中。然后,我们创建了一个包含多个用户的数组。通过调用 userRepository.save(users),这些用户数据会被批量插入到数据库中。

需要注意的是,save() 方法在处理已存在的记录时会根据主键来判断是执行更新还是插入操作。这使得 save() 方法非常灵活,适用于多种批处理场景。

此外,如果你处理的数据量非常大,TypeORM 也支持分批处理来优化性能和内存使用。这通常涉及到手动分割数据数组,并逐批次调用 save() 方法。

2024年6月29日 12:07 回复

你的答案