📅  最后修改于: 2023-12-03 15:09:42.731000             🧑  作者: Mango
TypeORM是一个用于Node.js和浏览器的对象关系映射器(ORM)。它支持多种数据库,并且具有良好的API和文档。
本文将介绍如何使用TypeORM配合JavaScript实现数据库操作。
使用npm或yarn进行安装:
npm install typeorm --save
yarn add 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方法动态添加实体类。
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官网了解。