数据库
概述
数据库模块基于 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);
}
}注意事项
- 初始化:确保在使用前初始化数据库
- 实体定义:正确使用装饰器定义实体
- 错误处理:始终处理数据库操作的错误
- 性能优化:合理使用索引和查询条件
下一步
- IBest-ORM 官方文档 - 了解更多 ORM 功能