Mikro-ORM 使用教程

Mikro-ORM 使用教程

mikro-ormmikro-orm/mikro-orm: 是一个基于 PHP 的轻量级 ORM 库,它支持多种数据库,包括 MySQL、SQLite、PostgreSQL 等。适合用于 PHP 应用程序的数据库操作和对象关系映射,特别是对于需要轻量级、高性能的 ORM 库的场景。特点是轻量级、高性能、支持多种数据库。项目地址:https://gitcode.com/gh_mirrors/mi/mikro-orm

项目介绍

Mikro-ORM 是一个基于 TypeScript 的 Node.js ORM 框架,它采用了数据映射器、工作单元和标识映射模式。Mikro-ORM 支持多种数据库,包括 MongoDB、MySQL、MariaDB、MS SQL Server、PostgreSQL 和 SQLite/libSQL。该框架提供了清晰的实体定义、实体构造器、关系建模、集合、工作单元、事务、级联持久化和删除、复合和外键作为主键、过滤器、查询构建器、深度嵌套结构的预加载、属性验证和生命周期钩子等功能。

项目快速启动

安装

首先,你需要安装 Mikro-ORM 及其对应的数据库驱动。以下是一些常见的安装命令:

# 对于 MongoDB
npm install @mikro-orm/core @mikro-orm/mongodb

# 对于 MySQL(也适用于 MariaDB)
npm install @mikro-orm/core @mikro-orm/mysql

# 对于 PostgreSQL(也适用于 CockroachDB)
npm install @mikro-orm/core @mikro-orm/postgresql

# 对于 SQLite
npm install @mikro-orm/core @mikro-orm/sqlite

配置

创建一个 mikro-orm.config.ts 文件来配置你的 ORM:

import { Options } from '@mikro-orm/core';
import { MongoDriver } from '@mikro-orm/mongodb';

const config: Options = {
  entities: ['./dist/entities'], // 实体文件路径
  dbName: 'my-db-name',
  type: 'mongo',
  clientUrl: 'mongodb://localhost:27017',
};

export default config;

初始化

在你的应用入口文件中初始化 Mikro-ORM:

import { MikroORM } from '@mikro-orm/core';
import config from './mikro-orm.config';

(async () => {
  const orm = await MikroORM.init(config);
  console.log(orm.em); // 输出 EntityManager 实例
})();

应用案例和最佳实践

实体定义

定义一个简单的实体:

import { Entity, PrimaryKey, Property } from '@mikro-orm/core';

@Entity()
export class User {

  @PrimaryKey()
  id!: number;

  @Property()
  createdAt: Date = new Date();

  @Property({ onUpdate: () => new Date() })
  updatedAt: Date = new Date();

  @Property()
  name!: string;

}

关系建模

定义一个带有关系的实体:

import { Entity, PrimaryKey, Property, ManyToOne } from '@mikro-orm/core';
import { User } from './User';

@Entity()
export class Book {

  @PrimaryKey()
  id!: number;

  @Property()
  title!: string;

  @ManyToOne(() => User)
  author!: User;

}

查询

使用查询构建器进行查询:

const books = await orm.em.find(Book, {}, { populate: ['author'] });
console.log(books);

典型生态项目

Mikro-ORM 可以与多种流行的框架和库集成,以下是一些典型的生态项目示例:

  • Express + MongoDB: 使用 Mikro-ORM 与 Express 框架和 MongoDB 数据库集成。
  • Nest + MySQL: 使用 Mikro-ORM 与 NestJS 框架和 MySQL 数据库集成。
  • RealWorld 示例应用: 一个使用 NestJS 和 MySQL 的 RealWorld 示例应用。
  • Koa + SQLite: 使用 Mikro-ORM 与 Koa 框架和 SQLite 数据库集成。
  • GraphQL + PostgreSQL: 使用 Mikro-ORM 与 GraphQL 和 PostgreSQL 数据库集成。
  • NextJS + MongoDB: 使用 Mikro-ORM 与 Next.js 框架和 MongoDB 数据库集成。

这些示例展示了 Mikro-ORM 在不同场景下的灵活性和强大功能。

mikro-ormmikro-orm/mikro-orm: 是一个基于 PHP 的轻量级 ORM 库,它支持多种数据库,包括 MySQL、SQLite、PostgreSQL 等。适合用于 PHP 应用程序的数据库操作和对象关系映射,特别是对于需要轻量级、高性能的 ORM 库的场景。特点是轻量级、高性能、支持多种数据库。项目地址:https://gitcode.com/gh_mirrors/mi/mikro-orm

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍妲葵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值