为什么选择 Prisma
方案 | Prisma | TypeORM | 原生驱动(mysql2) |
---|---|---|---|
开发效率 | ⭐⭐⭐⭐ 自动类型生成、直观语法 | ⭐⭐⭐ 需手动定义装饰器 | ⭐⭐ 需手写 SQL |
类型安全 | ⭐⭐⭐⭐ 完美 TypeScript支持 | ⭐⭐⭐ 需额外配置类型 | ⭐ 无类型安全 |
性能 | ⭐⭐⭐ ORM 轻微开销 | ⭐⭐ 复杂查询性能较低 | ⭐⭐⭐⭐ 直接操作数据库 |
迁移管理 | ⭐⭐⭐⭐ 内置 prisma migrate | ⭐⭐ 需手动或第三方工具 | ⭐ 完全手动 |
灵活性 | ⭐⭐⭐ 复杂 SQL 需原生查询 | ⭐⭐⭐⭐ 支持复杂查询 | ⭐⭐⭐⭐⭐ 完全控制 SQL |
Nextjs集成 | ⭐⭐⭐⭐官方推荐、文档完善 | ⭐⭐⭐ 需自行适配 | ⭐⭐ 无官方支持 |
Prisma 适合快速开发、需要强类型安全、团队熟悉现代工具链的项目。
Prisma的正确使用方式
安装 Prisma
bash
# 用的 5.0 版本, 不建议最新版本
npm install prisma @prisma/client
npx prisma init
配置 MySQL 连接
ini
# prisma/schema.prisma
datasource db {
provider = "mysql"
url = env("DATABASE_URL") # 格式:mysql://user:pass@host:port/db
}
定义数据模型
kotlin
# prisma/schema.prisma
model User {
id Int @id @default(autoincrement())
name String
email String @unique
}
生成 Prisma Client
npx prisma generate
生成迁移文件与同步数据库
csharp
npx prisma migrate dev --name init
在 Next.js 中使用
javascript
// app/api/users/route.ts
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
export async function GET() {
const users = await prisma.user.findMany();
return Response.json(users);
}
想了解更多可以直接访问 Prisma 文档指南
如果对你有帮助, 请点个赞鼓励下, 欢迎留言 🤝
名言集
"Work for something because it is good, not just because it stands a chance to succeed."「为某事努力因为那是件好事, 不只是因为它有成功的机会。」