📅  最后修改于: 2023-12-03 15:20:42.836000             🧑  作者: Mango
TypeORM是一个基于Typescript的ORM框架,它支持多种数据库,包括PostgreSQL,MySQL,MariaDB,SQLite,MS SQL Server,Oracle,WebSQL等。TypeORM的实体是ORM体系结构的核心之一,用于表示数据库中的表以及与表相关联的数据类型。
实体可以用装饰器@Entity来定义,例如:
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
firstName: string;
@Column()
lastName: string;
@Column()
age: number;
}
代码解释:
TypeORM实体的配置比较灵活,可以通过实体装饰器@Entity的参数来进行配置。例如:
@Entity({
name: 'users',
database: 'my-db',
schema: 'public',
})
export class User {
// ...
}
此外,还可以通过@Index、@Unique、@OneToMany等装饰器进行索引、唯一约束、一对多关联等配置。
在使用TypeORM实体之前,需要先创建一个TypeORM连接。连接创建代码示例如下:
import { createConnection } from 'typeorm';
createConnection({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'test',
password: 'test',
database: 'test',
entities: [User],
synchronize: true,
}).then(connection => {
console.log(`Connected to ${connection.options.type} database.`);
}).catch(error => {
console.log('Cannot connect to database.', error);
});
代码解释:
连接创建后,可以使用EntityManager进行实体查询、插入、更新、删除等操作,例如:
import { getManager } from 'typeorm';
const user = new User();
user.firstName = 'John';
user.lastName = 'Doe';
user.age = 30;
const entityManager = getManager();
// 插入一条新用户
await entityManager.save(user);
// 查询所有用户
const users = await entityManager.find(User);
// 更新一个用户
await entityManager.update(User, 1, { firstName: 'Jane', lastName: 'Doe', age: 25 });
// 删除一个用户
await entityManager.delete(User, 1);
代码解释:
更多关于TypeORM实体的使用,可以查看TypeORM官方文档。