- TypeORM教程
- TypeORM - 主页
- TypeORM - 简介
- TypeORM - 安装
- TypeORM - 创建一个简单的项目
- TypeORM - 连接 API
- TypeORM - 实体
- TypeORM - 关系
- TypeORM - 使用存储库
- TypeORM - 使用实体管理器
- TypeORM - 查询生成器
- TypeORM - 查询操作
- TypeORM - 交易
- TypeORM - 索引
- TypeORM - 实体监听器和日志记录
- 使用 JavaScript 进行 TypeORM
- TypeORM - 使用 MongoDB
- 使用 Express 进行 TypeORM
- TypeORM - 迁移
- TypeORM - 使用 CLI
- TypeORM 有用资源
- TypeORM - 快速指南
- TypeORM - 有用的资源
- TypeORM - 讨论
TypeORM - 使用实体管理器
EntityManager类似于Repository,用于管理插入、更新、删除和加载数据等数据库操作。Repository处理单个实体,而EntityManager对所有实体都是通用的,并且能够对所有实体进行操作。
实体管理器API
我们可以使用getManager()方法访问EntityManager,如下所示 -
import { getManager } from "typeorm"; const entityManager = getManager();
让我们学习本章中EntityManager最重要的方法。
联系
连接方法返回到特定数据库的数据库 ORM 连接。示例代码如下 -
const connection = manager.connection;
查询运行器
queryRunner方法返回自定义查询运行程序对象,实体管理器将其用于数据库操作。示例代码如下 -
const queryRunner = manager.queryRunner;
交易
如果调用多个数据库请求,事务将在单个数据库事务中执行。获取交易的示例代码如下 -
await manager.transaction(async manager => { });
询问
query方法执行sql查询。简单的插入查询如下所示 -
const qur = await manager.query(`insert into student(name,age) values('stud2',13)`);
插入
insert方法用于将新实体或实体数组插入到数据库中。示例代码如下 -
await manager.insert(Student, { Name: "Student3", Age: 14 });
更新
update用于更新数据库中现有的记录。
await manager.update(User, 1, { Name: "Adam" });
此查询的工作方式与下面的 SQL 查询类似,
UPDATE student SET Name = "Adam" WHERE id = 1
删除
delete方法将从表中删除指定的记录,
await manager.delete(Student, 1);
这将删除 id 为 1 的学生记录。
节省
save用于将给定实体保存到数据库中。简单的学生实体可以保存如下:
import {Student} from "./entity/Student"; createConnection().then(async connection => { console.log("Inserting a new record into the student database..."); const stud = new Student(); stud.Name = "student1"; stud.age = 12; await connection.manager.save(stud); }
这会将新的学生记录添加到数据库中。如果数据库中不存在给定的学生,save 方法将插入学生。否则,保存将更新数据库中现有的学生记录。
消除
remove用于从数据库中删除给定的实体。可以删除简单的学生实体,如下所示 -
await manager.remove(stud);
数数
count方法将返回表中可用记录的数量,您可以使用它进行分页目的。示例代码如下 -
const cnt = await manager.count(Student, { age: 12 });
寻找
find方法用于搜索目的。它从数据库中获取所有记录,如下所示 -
console.log("Loading users from the database..."); const students = await connection.manager.find(Student); console.log("Loaded users: ", students);
找一个
与find方法类似,但返回第一个匹配的记录。示例代码如下 -
const stud = await manager.findOne(Student, 1);
清除
clear 方法清除表中的所有数据。示例代码如下 -
await manager.clear(Student);