使用TypeORM进行数据库操作

清风徐来 2023-10-07 ⋅ 20 阅读

在开发过程中,数据库操作是不可或缺的一部分。TypeORM 是一个强大的对象关系映射(ORM)库,它提供了简单直观的方法来管理和操作数据库。在本篇博客中,我们将介绍如何使用 TypeORM 进行数据库操作。

安装 TypeORM

要使用 TypeORM,首先需要将其安装为项目的依赖项。可以使用 npm 或者 yarn 进行安装,具体命令如下:

npm install typeorm --save

或者

yarn add typeorm

配置数据库连接

在开始使用 TypeORM 之前,我们需要配置数据库连接。可以在项目的根目录创建一个 ormconfig.json 文件,并在其中指定数据库的连接信息。一个示例配置如下:

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

在这个配置文件中,我们指定了数据库的类型为 MySQL,连接地址为 localhost:3306,用户名为 root,密码为 password,数据库名为 mydatabasesynchronizelogging 参数用于自动同步数据库结构和记录日志。entitiesmigrations 字段分别指定了实体类和迁移文件所在的路径。

创建实体类

在使用 TypeORM 进行数据库操作之前,我们需要定义实体类来描述数据库表结构。一个示例的实体类如下:

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

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

  @Column()
  firstName: string;

  @Column()
  lastName: string;

  @Column()
  age: number;
}

在这个示例中,我们定义了一个叫做 User 的实体类,它有 idfirstNamelastNameage 四个字段。使用 @Entity() 装饰器来将这个类映射为数据库的一张表,使用 @PrimaryGeneratedColumn() 装饰器来指定主键,使用 @Column() 装饰器来指定普通字段。

进行数据库操作

在配置好数据库连接和定义好实体类之后,我们就可以使用 TypeORM 进行数据库操作了。以下是一些常见的操作示例:

创建数据库连接

import { createConnection } from "typeorm";

createConnection().then(connection => {
  // 在这里进行数据库操作
}).catch(error => console.log(error));

插入数据

import { getRepository } from "typeorm";
import { User } from "./entities/User";

const user = new User();
user.firstName = "John";
user.lastName = "Doe";
user.age = 25;

const userRepository = getRepository(User);
userRepository.save(user).then(savedUser => {
  console.log("User has been saved: ", savedUser);
}).catch(error => console.log(error));

查询数据

import { getRepository } from "typeorm";
import { User } from "./entities/User";

const userRepository = getRepository(User);
userRepository.find().then(users => {
  console.log("All users: ", users);
}).catch(error => console.log(error));

更新数据

import { getRepository } from "typeorm";
import { User } from "./entities/User";

const userRepository = getRepository(User);
userRepository.findOne({ firstName: "John" }).then(user => {
  user.lastName = "Smith";
  userRepository.save(user).then(updatedUser => {
    console.log("User has been updated: ", updatedUser);
  }).catch(error => console.log(error));
});

删除数据

import { getRepository } from "typeorm";
import { User } from "./entities/User";

const userRepository = getRepository(User);
userRepository.delete({ firstName: "John" }).then(result => {
  console.log("User has been deleted: ", result);
}).catch(error => console.log(error));

结语

TypeORM 是一个功能强大且易于使用的 ORM 库,它提供了丰富的方法来管理和操作数据库。通过配置数据库连接,定义实体类,以及使用上面的示例来进行数据库操作,您可以轻松地在您的项目中使用 TypeORM。希望本文对您有所帮助,祝您使用 TypeORM 开发愉快!


全部评论: 0

    我有话说: