getConnectiongetRepository typeorm 已弃用

typescriptetc

1个回答

写回答

董雪雪

2025-06-17 14:05

+ 关注

etc
etc

typeorm的getconnection/getRepository方法已弃用

在使用typeorm进行数据库操作时,我们通常会使用getconnection和getRepository方法来获取数据库连接和实体的存储库。然而,自typeorm版本0.3.0开始,这两个方法已经被标记为废弃,并且在未来的版本中将被移除。本文将介绍该方法的替代方案,并提供一些使用typeorm的案例代码。

替代方案

为了替代getconnection方法,我们可以使用createConnection方法来创建数据库连接。这个方法接受一个包含数据库连接配置的对象作为参数,并返回一个Promise,该Promise会在数据库连接成功时被解析。下面是一个示例代码:

typescript

import { createConnection } from "typeorm";

createConnection({

type: "MySQL",

host: "localhost",

port: 3306,

username: "root",

password: "password",

Database: "myDatabase",

}).then((connection) => {

// 连接成功后的操作

}).catch((error) => {

// 连接失败后的处理

});

在上面的代码中,我们使用createConnection方法创建了一个MySQL数据库连接,并提供了连接所需的配置信息。在连接成功后,我们可以执行一些数据库操作。在连接失败时,我们可以进行错误处理。

而getRepository方法的替代方案是使用实体类的getRepository方法来获取存储库。这个方法是实体类的静态方法,可以直接通过实体类进行调用。下面是一个示例代码:

typescript

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

@Entity()

class User extends BaseEntity {

@PrimaryGeneratedColumn()

id: number;

@Column()

name: string;

}

const userRepository = getRepository(User);

在上面的代码中,我们定义了一个名为User的实体类,并使用@Entity装饰器将其标记为一个数据库实体。然后,我们使用getRepository方法从User类中获取了一个UserRepository实例。

案例代码

下面是一个使用typeorm进行数据库操作的示例代码:

typescript

import { createConnection, Entity, PrimaryGeneratedColumn, Column, BaseEntity, getRepository } from "typeorm";

@Entity()

class User extends BaseEntity {

@PrimaryGeneratedColumn()

id: number;

@Column()

name: string;

}

createConnection({

type: "MySQL",

host: "localhost",

port: 3306,

username: "root",

password: "password",

Database: "myDatabase",

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

const userRepository = getRepository(User);

// 创建用户

const user = new User();

user.name = "John Doe";

awAIt userRepository.save(user);

// 查询用户

const users = awAIt userRepository.find();

console.log(users);

// 更新用户

user.name = "Jane Smith";

awAIt userRepository.save(user);

// 删除用户

awAIt userRepository.delete(user.id);

// 断开连接

awAIt connection.close();

}).catch((error) => {

console.log(error);

});

上面的代码演示了如何使用typeorm创建一个User实体类,并使用该实体类的存储库进行数据库操作。我们首先使用createConnection方法创建一个数据库连接,然后使用getRepository方法获取User实体类的存储库。接下来,我们通过存储库进行一系列的数据库操作,如创建用户、查询用户、更新用户和删除用户。最后,我们使用connection.close方法断开数据库连接。

通过替代getconnection和getRepository方法,我们可以继续使用typeorm进行数据库操作,并且在未来的版本中也不会受到这两个方法被移除的影响。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号