Skip to content

数据库

概述

数据库模块基于 IBest-ORM 封装,提供简单易用的数据库操作接口。

初始化

在应用入口初始化数据库:

typescript
import { IBestORMInit } from "@core/database";

IBestORMInit(context, { name: "app.db" });

定义实体

使用装饰器定义数据库实体:

typescript
import { Entity, PrimaryKey, Column } from "@ibestservices/ibest-orm";

@Entity("users")
export class User {
  @PrimaryKey()
  id: string;

  @Column()
  name: string;

  @Column()
  email: string;

  @Column()
  createdAt: Date;
}

基本操作

插入数据

typescript
const user = new User();
user.id = "1";
user.name = "张三";
user.email = "zhangsan@example.com";
user.createdAt = new Date();

await userRepository.insert(user);

查询数据

typescript
// 查询所有
const users = orm.query(User).find();

// 根据 ID 查询
const user = orm.query(User).whereIn('id', [1, 2, 3]).find();

// 条件查询
const user = orm.query(User).where({ age: { gte: 18, lte: 30 } }).find();

更新数据

typescript
orm.query(User).where({ id: 1 }).update({ name: '李四', age: 30 });

删除数据

typescript
orm.deleteById(User, 1);

最佳实践

使用 Repository 模式

将数据库操作封装在 Repository 中:

typescript
// 推荐
export class UserRepository {
  private repository = getRepository(User);

  async getUserById(id: string): Promise<User | null> {
    return await this.repository.findById(id);
  }
}

注意事项

  1. 初始化:确保在使用前初始化数据库
  2. 实体定义:正确使用装饰器定义实体
  3. 错误处理:始终处理数据库操作的错误
  4. 性能优化:合理使用索引和查询条件

下一步