Prisma × Next.js 15:MySQL 极速开发全栈指南
<h2 id="为什么选择-prisma">为什么选择 Prisma</h2><table>
<thead>
<tr>
<th>方案</th>
<th>Prisma</th>
<th>TypeORM</th>
<th>原生驱动(mysql2)</th>
</tr>
</thead>
<tbody>
<tr>
<td>开发效率</td>
<td>⭐⭐⭐⭐ 自动类型生成、直观语法</td>
<td>⭐⭐⭐ 需手动定义装饰器</td>
<td>⭐⭐ 需手写 SQL</td>
</tr>
<tr>
<td>类型安全</td>
<td>⭐⭐⭐⭐ 完美 TypeScript支持</td>
<td>⭐⭐⭐ 需额外配置类型</td>
<td>⭐ 无类型安全</td>
</tr>
<tr>
<td>性能</td>
<td>⭐⭐⭐ ORM 轻微开销</td>
<td>⭐⭐ 复杂查询性能较低</td>
<td>⭐⭐⭐⭐ 直接操作数据库</td>
</tr>
<tr>
<td>迁移管理</td>
<td>⭐⭐⭐⭐ 内置 prisma migrate</td>
<td>⭐⭐ 需手动或第三方工具</td>
<td>⭐ 完全手动</td>
</tr>
<tr>
<td>灵活性</td>
<td>⭐⭐⭐ 复杂 SQL 需原生查询</td>
<td>⭐⭐⭐⭐ 支持复杂查询</td>
<td>⭐⭐⭐⭐⭐ 完全控制 SQL</td>
</tr>
<tr>
<td>Nextjs集成</td>
<td>⭐⭐⭐⭐官方推荐、文档完善</td>
<td>⭐⭐⭐ 需自行适配</td>
<td>⭐⭐ 无官方支持</td>
</tr>
</tbody>
</table>
<p>Prisma 适合快速开发、需要强类型安全、团队熟悉现代工具链的项目。</p>
<h2 id="prisma的正确使用方式">Prisma的正确使用方式</h2>
<h3 id="安装-prisma">安装 Prisma</h3>
<pre><code class="language-shell"># 用的 5.0 版本, 不建议最新版本
npm install prisma @prisma/client
npx prisma init
</code></pre>
<h3 id="配置-mysql-连接">配置 MySQL 连接</h3>
<pre><code class="language-mysql"># prisma/schema.prisma
datasource db {
provider = "mysql"
url = env("DATABASE_URL")# 格式:mysql://user:pass@host:port/db
}
</code></pre>
<h3 id="定义数据模型">定义数据模型</h3>
<pre><code class="language-mysql"># prisma/schema.prisma
model User {
id Int @id @default(autoincrement())
nameString
email String@unique
}
</code></pre>
<h3 id="生成-prisma-client">生成 Prisma Client</h3>
<pre><code class="language-shell">npx prisma generate
</code></pre>
<h3 id="生成迁移文件与同步数据库">生成迁移文件与同步数据库</h3>
<pre><code class="language-shell">npx prisma migrate dev --name init
</code></pre>
<h3 id="在-nextjs-中使用">在 Next.js 中使用</h3>
<pre><code class="language-ts">// 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);
}
</code></pre>
<p>想了解更多可以直接访问 Prisma 文档指南</p>
<p><strong>如果对你有帮助, 请点个赞鼓励下, 欢迎留言 🤝</strong></p>
<h4 id="名言集">名言集</h4>
<p>“Work for something because it is good, not just because it stands a chance to succeed.”「为某事努力因为那是件好事, 不只是因为它有成功的机会。」</p>
</div>
<div id="MySignature" role="contentinfo">
深度思考,全面总结,综合发展!!<br><br>
来源:https://www.cnblogs.com/strivegys/p/18823973
頁:
[1]