介绍
Deno 是一个基于 JavaScript 和 TypeScript 的新一代运行时环境,它提供了更好的模块化支持和更强的安全性。而 TypeORM 则是一个流行的 TypeScript ORM(对象关系映射)框架,它可以帮助我们更加方便地操作数据库。
在本文中,我们将会讲解如何在 Deno 中使用 TypeORM 进行数据库操作。本文的主要内容包括:
- 安装 TypeORM
- 配置数据库连接
- 创建实体(Entity)
- 执行增删改查操作
- 使用 Repository
- 使用 QueryBuilder
安装 TypeORM
TypeORM 可以通过 npm 安装:
npm install typeorm --save
配置数据库连接
在使用 TypeORM 进行数据库操作前,我们需要先配置数据库连接。在 Deno 环境中,我们可以使用 deno-postgres 来连接 PostgreSQL 数据库。在安装 deno-postgres 后,我们可以使用如下代码来建立数据库连接:
-- -------------------- ---- ------- ------ - ------ - ---- -------------------------------------- ----- ------ - --- -------- ----- ----------- --------- ------------ --------- ----------- --------- ----------- ----- ----- --- ----- -----------------
这里,我们需要将 user
、hostname
、database
、password
和 port
替换成自己的数据库信息。
创建实体(Entity)
在 TypeORM 中,实体是指对应数据库表结构的 TypeScript 类。我们可以通过定义实体来创建、删除、修改、查询数据库记录。
例如,我们创建一个 User 实体:
-- -------------------- ---- ------- ------ - ------- ----------------------- ------ - ---- ---------- --------- ------ ----- ---- - ------------------------- --- ------- --------- ----- ------- --------- ------ ------- --------- --------- ------- -
这里,我们使用了 @Entity()
来标记这是一个实体类,使用 @PrimaryGeneratedColumn()
来指定 id 为自增 long 类型。其他注解和普通的 TypeScript 类一样,同时还需要继承 BaseEntity
类,才能使用 TypeORM 提供的基础功能。
执行增删改查操作
在定义好实体后,我们可以使用 Repository 来执行增删改查操作。
创建 Repository:
const userRepository = connection.getRepository(User);
执行增加用户操作:
const user = new User(); user.name = "Alice"; user.email = "alice@example.com"; user.password = "123456"; await userRepository.save(user);
执行查询用户操作:
const users = await userRepository.find(); console.log(users);
执行删除用户操作:
await userRepository.delete(1);
执行更新用户操作:
await userRepository.update(1, { email: "new-email@example.com", });
使用 Repository
除了上述的增删改查操作,Repository 还提供了许多常用的方法,让我们可以更加方便地进行数据库操作。
例如,查询指定属性和拍平查询:
const user = await userRepository.findOne({ name: "Alice" }); const usersWithAddress = await userRepository.find({ relations: ["address"], });
我们还可以使用各种查询条件来查询特定的数据:
const users = await userRepository .createQueryBuilder("user") .where("user.name = :name", { name: "Alice" }) .andWhere("user.age > :age", { age: 18 }) .orderBy("user.age", "DESC") .getMany();
以上代码使用了 QueryBuilder 来构建查询,它是一种链式调用的方式,可以方便地构建复杂查询语句。
使用 QueryBuilder
QueryBuilder 可以让我们更加灵活地构建查询,例如我们可以使用 LIKE 来进行模糊查询:
const users = await userRepository .createQueryBuilder("user") .where("user.name LIKE :name", { name: `%${name}%` }) .getMany();
QueryBuilder 还支持 join、select、group by 等功能,可以让我们更加方便地进行数据库操作。
总结
本文介绍了如何在 Deno 中使用 TypeORM 进行数据库操作,内容包括安装 TypeORM、配置数据库连接、创建实体(Entity)、执行增删改查操作、使用 Repository 和使用 QueryBuilder。希望这篇文章能帮助大家更好地理解 TypeORM 的使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/664ac61bd3423812e49b37f9