00
:
00
:
00
:
00
Corso SEO AI - Usa SEOEMAIL al checkout per il 30% di sconto

Prisma Client

Inizializzazione

```typescript import { PrismaClient } from ‘@prisma/client’

const prisma = new PrismaClient()

// Best practice in Next.js: usare un singleton in dev // per evitare troppe connessioni durante l’HMR. ```

CRUD Operations

Create

```typescript const user = await prisma.user.create({ data: { email: ‘elsa@prisma.io’, name: ‘Elsa Prisma’, }, }) ```

Read

```typescript // Trova tutti const users = await prisma.user.findMany()

// Filtra (WHERE) const admins = await prisma.user.findMany({ where: { isAdmin: true, }, })

// Trova uno solo (Unique) const user = await prisma.user.findUnique({ where: { email: ‘elsa@prisma.io’, }, }) ```

Update

```typescript const updatedUser = await prisma.user.update({ where: { email: ‘elsa@prisma.io’, }, data: { name: ‘Elsa la regina’, }, }) ```

Delete

```typescript const deletedUser = await prisma.user.delete({ where: { email: ‘elsa@prisma.io’, }, }) ```

Relazioni (Include & Select)

Uno dei poteri più grandi di Prisma è caricare dati relazionali annidati facilmente.

```typescript const usersWithPosts = await prisma.user.findMany({ include: { posts: true, // Carica tutti i post dell’utente }, })

// Oppure seleziona solo campi specifici const usersSelect = await prisma.user.findMany({ select: { name: true, posts: { select: { title: true, // Solo il titolo dei post }, }, }, }) ```