为什么选择 Prisma
| 方案 |
Prisma |
TypeORM |
原生驱动(mysql2) |
| 开发效率 |
⭐⭐⭐⭐ 自动类型生成、直观语法 |
⭐⭐⭐ 需手动定义装饰器 |
⭐⭐ 需手写 SQL |
| 类型安全 |
⭐⭐⭐⭐ 完美 TypeScript支持 |
⭐⭐⭐ 需额外配置类型 |
⭐ 无类型安全 |
| 性能 |
⭐⭐⭐ ORM 轻微开销 |
⭐⭐ 复杂查询性能较低 |
⭐⭐⭐⭐ 直接操作数据库 |
| 迁移管理 |
⭐⭐⭐⭐ 内置 prisma migrate |
⭐⭐ 需手动或第三方工具 |
⭐ 完全手动 |
| 灵活性 |
⭐⭐⭐ 复杂 SQL 需原生查询 |
⭐⭐⭐⭐ 支持复杂查询 |
⭐⭐⭐⭐⭐ 完全控制 SQL |
| Nextjs集成 |
⭐⭐⭐⭐官方推荐、文档完善 |
⭐⭐⭐ 需自行适配 |
⭐⭐ 无官方支持 |
Prisma 适合快速开发、需要强类型安全、团队熟悉现代工具链的项目。
Prisma的正确使用方式
安装 Prisma
# 用的 5.0 版本, 不建议最新版本
npm install prisma @prisma/client
npx prisma init
配置 MySQL 连接
# prisma/schema.prisma
datasource db {
provider = "mysql"
url = env("DATABASE_URL") # 格式:mysql://user:pass@host:port/db
}
定义数据模型
# prisma/schema.prisma
model User {
id Int @id @default(autoincrement())
name String
email String @unique
}
生成 Prisma Client
npx prisma generate
生成迁移文件与同步数据库
npx prisma migrate dev --name init
在 Next.js 中使用
// 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.”「为某事努力因为那是件好事, 不只是因为它有成功的机会。」
深度思考,全面总结,综合发展!!
来源:https://www.cnblogs.com/strivegys/p/18823973 |