开源
TypeORM 是一个用于 TypeScript 和 JavaScript 的 ORM (对象关系映射)。它支持 MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, 以及 WebSQL 等多种数据库。TypeORM 可以在 NodeJS, 浏览器, Ionic, Cordova 和 Electron 等平台上运行。
关于TypeORM
TypeORM 是一个用于 TypeScript 和 JavaScript 的 ORM (对象关系映射)。它支持 MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, 以及 WebSQL 等多种数据库。TypeORM 可以在 NodeJS, 浏览器, Ionic, Cordova 和 Electron 等平台上运行。
它旨在支持最新的 JavaScript 特性,并提供额外的功能来帮助开发者构建使用数据库的任何类型的应用程序,从小型应用程序到使用多个数据库的大型企业级应用程序都能够得到支持。
TypeORM独特的是,它支持 Active Record 和 Data Mapper 模式,这意味着相比其他当前存在的 JavaScript ORMs,可以通过这种方式编写高质量、低耦合、可伸缩、可维护的应用程序。
TypeORM 的功能包括:
- 支持 Data Mapper 和 Active Record 模式
- 实体和列的定义
- 数据库特有的列类型
- 实体管理器
- 仓库和自定义仓库
- 关联(relations)
- 主动和懒加载关系
- 单向、双向和自引用关系
- 支持多种继承模式
- 级联
- 索引
- 事务
- 迁移和自动生成迁移
- 连接池
- 复制
- 多数据库实例支持
- 跨数据库和跨模式查询
- QueryBuilder 功能强大且灵活
- 日志
- 监听器和订阅者(钩子)
- 遵循所有最佳实践
为了入门 TypeORM,可以安装它的 npm 包并完成基本配置。安装方式一般为 npm install typeorm --save 指令。事实上,使用 TypeORM 可以让你的数据操作更直观和简洁,举例来说:
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; @Entity() export class User { @PrimaryGeneratedColumn() id: number;
@Column()
firstName: string;
@Column()
lastName: string;
@Column()
age: number;
}
这段代码定义了一个基础模型。TypeORM 还有 CLI 工具,帮助生成初始项目和管理数据迁移。此外,TypeORM 也是受 Hibernate、Doctrine 和 Entity Framework 等其他 ORM 的启发。