📅  最后修改于: 2023-12-03 14:57:37.379000             🧑  作者: Mango
TypeORM是一款支持Typescript的ORM框架,可用于控制PostgreSQL、MySQL、MariaDB、SQLite、MS SQL Server等多种数据库。它具有实现数据表关系的强大功能,包括一对一、一对多、多对一和多对多,并且支持Column、Entity、Repository等等。此外,它提供了强大的查询构造器(Query Builder)方式来更加方便的查询数据。
使用npm可以在命令行中进行安装:
npm install typeorm --save
在TypeORM中,实现数据表关系需要定义一个Entity来映射数据库表。Entity是一种装饰器(decorator),定义了数据库表的名称(table name)、字段(column)以及它们之间的关系(relation)。一个实体通常会映射为一个具体的数据表。
以下是一个示例:
import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm';
import { Order } from './Order';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@OneToMany(type => Order, order => order.user)
orders: Order[];
}
TypeORM提供了Repository来操纵数据表。Repository类似于数据库操作中的DAO(Data Access Object),提供了各种针对表的操作方法,例如获取、创建、修改、删除、统计等。它还支持各种查询构造器,例如find、findOne、andWhere、orWhere等,以便能够更加方便地查询出所需要的数据。
以下是示例:
import { getRepository } from 'typeorm';
import { User } from './entity/User';
const userRepository = getRepository(User);
const users = await userRepository.find();
const user = await userRepository.findOne(1);
const count = await userRepository.count();
一个数据库连接(connection)通常代表着与一个特定数据库的长连接,TypeORM提供了Connection来封装这些操作。Connection包含了一个EntityManger和一个QueryBuilder,它们分别被用于处理Entity实例和QueryBuilder实例,以便于对数据库的操作。
以下是示例:
import { createConnection } from 'typeorm';
await createConnection({
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'user',
password: 'pass',
database: 'test',
entities: [
'dist/entity/**/*.js'
],
synchronize: true,
logging: false
});
TypeORM是一个功能强大且易于使用的ORM框架,可用于控制多种类型的数据库。它提供了许多实用的方法,例如查询构造器、Repository和Connection等,以便于满足程序员的需求。现在,你可以使用Node.js和TypeORM来从数据库中更加便捷地检索数据了。