TypeORM-实体
实体是字段和关联的数据库操作的集合。它用于将数据库表及其字段与实体及其属性进行映射。本章详细说明TypeORM实体。
介绍
让我们在代码中创建一个简单的Entity类。移至您的项目根目录,然后进入src文件夹并移至实体文件夹。现在,创建一个TypeScript文件Student.ts并输入以下代码-
学生
这里,
Entity()装饰器类用于表示Student类是一个实体。
PrimaryGeneratedColumn()装饰器类用于表示id列是Student实体的主键列。
Column()装饰器类用于表示其他列,例如Student实体的Name和Age 。
现在,创建实体类Student 。 TypeORM将自动在我们的数据库中生成一个与Student实体相对应的表,并将其命名为student 。现在,移至src / index.ts文件并添加以下代码-
索引
这里,
第1-3行导入了相关的类createConnection和Student
第5行使用createConnection创建到数据库的新连接,如果建立了连接,它将在then块内执行代码。
第10行创建新的Student对象,双头螺栓。
第13-14行设置了我们新创建的stud对象的属性。
第17行使用connection.manager对象中可用的save方法将实体保存到数据库。
第23行使用connection.manager对象中可用的find方法从数据库中获取学生详细信息。
启动Mysql服务器并运行您的应用程序
我们已经创建了Student实体,并在index.ts中创建了连接。让我们同时启动MySql服务器和您的应用程序。
这将在屏幕上返回以下输出-
输出
下面的学生表打开的mysql服务器被添加到您的数据库中。
列
如前所述,实体实际上是属性的集合。作为实体对象引用数据库表。其属性/成员变量引用相应数据库表的字段/列。 TypeORM通过Column类支持所有类型的数据库字段。让我们学习本章中TypeORM支持的不同类型的列。
@Column()装饰器类用于表示实体中的列及其类型。
例如,学生实体的年龄属性和年龄属性的类型可以定义如下-
这里,
年龄是实体的属性。换句话说,年龄是数据库中学生表中的一个字段/列。
int表示数据库中age列的类型。
TypeORM支持流行的数据库引擎中几乎所有可用的类型。实际上,TypeORM为每个数据库引擎启用了不同的类型集。我们可以使用数据库引擎支持的任何数据库类型,而不会出现任何问题。
例如,TypeORM支持的PostgreSQL数据库引擎的类型如下:
同样,TypeORM为MySQL支持另一组数据类型。
列选项
TypeORM提供了除类型以外的多种选项来描述该列。例如,length选项是指数据库字段的长度,可以如下指定:
一些最常见的列选项如下-
name-数据库字段/列的名称。
长度-数据库字段/列的长度。
可空-指定数据库字段/列是否允许为空。
default-数据库字段/列的默认值。
primary-指定数据库字段/列是否为表的主键。
unique-指定数据库字段/列是否唯一
* precision ** -数据库字段/列的精度
规模-数据库字段/列的规模
comment-数据库字段/列的注释或描述
@生成的装饰器
TypeORM提供了额外的装饰器@Generated来自动生成列值。例如,通用唯一标识符(UUID)在数据库中用于在列中存储唯一值的情况非常普遍。生成UUID的示例代码如下-
这里,
uuid是自动生成的,并存储在数据库中。
主列
对于数据库中的任何实体,至少一个主列字段是必需的。它分为不同类型的装饰器。我们将一一讨论。
@PrimaryColumn()
@PrimaryColumn()装饰器用于为任何类型的数据创建主列。下面是一个简单的示例,
这里,
id是一个整数,不接受重复值,但是我们需要分配值。
如果情况需要,我们也可以为一个或多个字段分配主列。
例
@PrimaryGeneratedColumn()
@PrimaryGeneratedColumn()字段用于指定主列以及自动在数据库中生成列值。它显示如下-
这里,
您不必分配ID值;它会由TypeORM在数据库表中自动生成。
@PrimaryGeneratedColumn(“ uuid”)
@PrimaryGeneratedColumn也接受一个参数来指定生成器的类型。主要用途之一是基于UUID生成唯一ID。
简单数组列类型
高级关系数据库支持数组数据类型。为了支持数组数据类型,TypeORM提供了一种特殊的列类型* simple-array“来存储原始数组值。要使用的示例代码如下-
simple-json列类型
许多现代的数据库引擎都支持JSON数据库。要使用JSON数据类型,TypeORM提供了一种特殊类型的single-json。使用它的示例代码如下-
该值可以在index.ts中定义为
索引
特殊栏
TypeORM支持以下特殊列
@CreateDateColumn-这是一个特殊列,用于自动设置实体的插入日期。
@UpdateDateColumn-用于自动设置实体的更新时间。
@VersionColumn-自动设置实体的版本号。
实体继承
实体继承用于减少实体重复。考虑以下实体-
结果
等级
grade.ts的代码如下-
这里,
以上两个实体具有列ID,标题和描述。使用实体继承,我们创建一个基类Details,并按以下指定的方式组合上述两个实体。
详细信息
现在启动服务器,您将看到以下响应,
现在打开您的mysql服务器并移至您的数据库,您可以看到以下表格,
成绩表
结果表
TypeORM实体是数据库操作的集合,映射数据库表和字段。本文介绍了如何创建和使用实体,包括装饰器如PrimaryGeneratedColumn和Column,列类型、选项以及特殊列如CreateDateColumn。还展示了实体继承来减少代码重复。
827

被折叠的 条评论
为什么被折叠?



