📜  带JavaScript的TypeORM(1)

📅  最后修改于: 2023-12-03 15:09:42.731000             🧑  作者: Mango

带JavaScript的TypeORM

TypeORM是一个用于Node.js和浏览器的对象关系映射器(ORM)。它支持多种数据库,并且具有良好的API和文档。

本文将介绍如何使用TypeORM配合JavaScript实现数据库操作。

安装TypeORM

使用npm或yarn进行安装:

npm install typeorm --save

yarn add typeorm
配置TypeORM

在项目根目录下创建一个ormconfig.json文件,配置数据库信息:

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

其中,type指定数据库类型,支持多种数据库;host和port指定数据库的地址和端口;username和password指定数据库的用户名和密码;database指定要操作的数据库名称;entities指定数据库实体所在的文件夹;synchronize设置为true表示每次运行都会同步数据库结构。

定义实体类

在entities指定的文件夹下创建一个js文件,定义实体类:

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

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

  @Column()
  name: string;

  @Column()
  age: number;
}

@Entity装饰器用于指定该类为实体类,@PrimaryGeneratedColumn装饰器用于指定主键,并生成自动增长的ID,@Column装饰器用于指定字段。

创建连接

在程序中创建连接:

const { createConnection } = require('typeorm');

createConnection().then(async (connection) => {

}).catch((error) => console.log(error));

createConnection方法可以传入一个配置文件,也可以在启动时通过调用getMetadata方法动态添加实体类。

CRUD操作
创建操作
const user = new User();
user.name = '张三';
user.age = 18;

await connection.manager.save(user);

使用manager实例的save方法将实体对象保存到数据库中。

查询操作
const users = await connection.manager.find(User);

console.log(users);

使用manager实例的find方法查询实体列表。

const user = await connection.manager.findOne(User, 1);

console.log(user);

使用manager实例的findOne方法查询单个实体。

更新操作
const user = await connection.manager.findOne(User, 1);

if (user) {
  user.age = 22;

  await connection.manager.save(user);
}

查询实体后可以修改后保存到数据库。

删除操作
const user = await connection.manager.findOne(User, 1);

if (user) {
  await connection.manager.remove(user);
}

查询实体后可以调用manager实例的remove方法删除实体。

总结

TypeORM与JavaScript合作可以实现方便快捷的数据库操作,可以在Node.js和浏览器中使用。除了上述基本操作,TypeORM还提供了更多高级操作,可前往TypeORM官网了解。