📅  最后修改于: 2023-12-03 15:20:42.823000             🧑  作者: Mango
TypeORM是一个基于Typescript的ORM框架,可以方便地管理数据库实体。在TypeORM中,实体管理器是一种能够操作数据库实体的强大工具。
在使用实体管理器之前,需要先创建一个TypeORM连接。可以使用如下代码创建连接:
import { createConnection } from "typeorm";
const connection = await createConnection({
type: "mysql",
host: "localhost",
port: 3306,
username: "root",
password: "password",
database: "test",
entities: [entity1, entity2],
synchronize: true,
});
其中,entities
属性指定需要管理的实体。创建连接后,就可以使用实体管理器了。代码如下:
import { getManager } from "typeorm";
const manager = getManager();
使用实体管理器插入一条数据可以使用如下代码:
import { User } from "./entity/User";
const user = new User();
user.name = "Alice";
user.age = 20;
await manager.insert(User, user);
使用实体管理器更新一条数据可以使用如下代码:
import { User } from "./entity/User";
const user = new User();
user.id = 1;
user.age = 21;
await manager.update(User, 1, user);
使用实体管理器查询数据可以使用如下代码:
import { User } from "./entity/User";
const users = await manager.find(User);
使用实体管理器删除一条数据可以使用如下代码:
import { User } from "./entity/User";
await manager.delete(User, 1);
实体管理器还有很多高级操作,包括事务操作、多表关联查询等。下面介绍两个常用的高级操作。
使用实体管理器进行事务操作可以使用如下代码:
await manager.transaction(async (entityManager) => {
const user1 = new User();
user1.name = "Tom";
user1.age = 21;
await entityManager.save(User, user1);
const user2 = new User();
user2.name = "Jerry";
user2.age = 20;
await entityManager.save(User, user2);
});
使用实体管理器进行多表关联查询可以使用如下代码:
const users = await manager
.createQueryBuilder(User, "user")
.leftJoinAndSelect("user.address", "address")
.where("user.name = :name", { name: "Alice" })
.getMany();
在上面的代码中,使用createQueryBuilder
方法创建查询构造器。调用leftJoinAndSelect
方法可以进行多表关联查询,调用where
方法可以设置查询条件。最后调用getMany
方法获取查询结果。
实体管理器是TypeORM中的一个强大工具,可以方便地管理数据库实体。本文介绍了实体管理器的基础操作和高级操作,希望可以帮助使用TypeORM的开发者快速掌握实体管理器的知识。