首页 > 其他分享 >typeorm

typeorm

时间:2023-05-28 12:56:25浏览次数:23  
标签:name Column 数据库 number User typeorm TypeORM

TypeORM简介

TypeORM是一个ORM框架,是使用TypeScript和JavaScript编写的,它支持多种关系型数据库,包括MySQL、PostgreSQL、SQLite和Microsoft SQL Server等。TypeORM可以帮助我们更轻松地管理数据库,不需要编写大量的SQL语句。

安装

TypeORM可以使用npm进行安装,我们可以在终端中输入以下命令:

npm i typeorm --save

还需要安装连接数据库的库,例如mysql、pg等:

npm i mysql --save
npm i pg --save

配置

TypeORM的配置是通过一个配置文件实现的。我们需要在项目根目录下创建一个ormconfig.json文件,这个文件包含了我们连接数据库所需要的配置,例如数据库类型、主机名、用户名、密码、端口以及数据库名等信息。

一个简单的ormconfig.json文件如下:

{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "password",
  "database": "database_name",
  "entities": [
    "src/entity/**/*.ts"
  ],
  "synchronize": true
}

实体

实体是TypeORM的核心概念,它们是映射到数据库表的类。TypeORM支持使用装饰器将类转换为实体。一个简单的实体类如下:

import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column()
  age: number;
}

实体类中使用@Entity()装饰器来表示这是一个实体类,并使用@PrimaryGeneratedColumn()装饰器表示这是主键列。

仓库

仓库是管理实体的类。TypeORM会为每个实体自动生成一个仓库类,我们也可以手动创建一个仓库类来管理实体,使用@EntityRepository()装饰器来表示这是一个仓库类。

import { EntityRepository, Repository } from "typeorm";
import { User } from "../entity/user.entity";

@EntityRepository(User)
export class UserRepository extends Repository<User> {}

查询

TypeORM提供了一种基于查询构造器的查询语言,这使得构建SQL查询更加简便。例如,在仓库类中查询所有用户的语句如下:

const users = await userRepository.find();

我们也可以添加一些条件查询:

const users = await userRepository.find({
  where: {
    name: "John",
    age: MoreThan(18)
  },
  order: {
    name: "ASC"
  },
  skip: 10,
  take: 10
})

关系

TypeORM支持多种关系,包括一对一、一对多、多对多等。例如,一个用户可以拥有多个订单:

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column()
  age: number;

  @OneToMany(type => Order, order => order.user)
  orders: Order[];
}

@Entity()
export class Order {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  amount: number;

  @ManyToOne(type => User, user => user.orders)
  user: User;
}

在用户实体中,我们使用@OneToMany()来表示一个用户可以拥有多个订单。在订单实体中,我们使用@ManyToOne()来表示多个订单可以对应一个用户。

总结

TypeORM是一个强大的ORM框架,提供了多种功能来管理数据库。它支持多种数据库,使用TypeScript或JavaScript编写,易于使用和配置。

标签:name,Column,数据库,number,User,typeorm,TypeORM
From: https://www.cnblogs.com/Qihoo360/p/17438094.html

相关文章

  • Nest.js + TypeOrm
    TypeORM集成$npminstall--save@nestjs/typeormtypeormmysql2/pg安装过程完成后,我们可以将TypeOrmModule导入到根目录中AppModule。import{Module}from'@nestjs/common';import{TypeOrmModule}from'@nestjs/typeorm';@Module({imports:[TypeOr......
  • 小满nestjs(第二十七章 nestjs typeOrm关系)
    在我们开始的过程中,肯定不会把数据存在一个表里面,我们会进行分表,把数据分开存,然后通过关联关系,联合查询。typeOrm文档 ​​一对一|TypeORM中文文档​​前端代码还是复......
  • NestJS 后台管理系统搭建、TypeOrm使用(一)
    前言技术千千万,学习永不断;虽然是咸鱼,也想努把力!!!这段时间一直很迷茫,做前端这行也有6年了,眼看马上奔三的人了,但依旧是个菜逼,整天代码写了不少,但总感觉缺少些什么,一直都没......
  • 【个人笔记】Nestjs使用TypeORM注意点
    在Nestjs使用TypeORM还是有一些注意点。entities路径配置注意点在nestjs中使用TypeORM,需要配置数据库连接(以MySQL为例)。需要特别注意的是配置参数里面的entities字段:{......
  • TypeOrm框架(2)----创建实体
    TypeOrm框架----创建实体1.清除初始化项目中不需要的内容Ⅰ.项目最初提供了一个User实体作为教例,我们把它删除(位置:\OrmTestProject\Entities\User.ts);Ⅱ.然后我们要......
  • typeorm-model-generator 数据库映射Model 命令 - nest
    typeorm-model-generator数据库映射Model命令NestJs中的控制器、路由、Get、Post方法参数装饰器Nest.js从零到壹系列(二):使用Sequelize操作数据库这里说不要用typeorm......