0% acharam este documento útil (0 voto)
5 visualizações4 páginas

CRUD MySQL com Prisma: Tutorial Completo

Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações4 páginas

CRUD MySQL com Prisma: Tutorial Completo

Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Tutorial para CRUD com MYSQL usando PRISMA

Passo 1: Configurar o Prisma


1. Instale o Prisma CLI localmente no seu projeto:
npm install @prisma/cli

2. Inicialize o Prisma no seu projeto:


npx prisma init

3. Selecione a opção Use other dialects (MySQL, SQLite, Microsoft SQL Server,
PostgreSQL, CockroachDB) e escolha o banco de dados MySQL.

Passo 2: Adaptar o Schema do Prisma


Dentro do arquivo [Link], defina a estrutura do seu banco de dados. Você precisa definir
um modelo para a tabela de tarefas.
// [Link]

datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}

model Task {
id Int @id @default(autoincrement())
descricao String
finalizado Boolean
}

Passo 3: Migre e Implante as Migrações


1. Execute o comando a seguir para criar uma nova migração:
npx prisma migrate dev --name init

2. Isso criará um arquivo de migração na pasta prisma/migrations. Para aplicar as


migrações ao banco de dados, execute:
npx prisma migrate deploy
Passo 4: Definir a Classe Task
Crie um novo arquivo chamado [Link] dentro da pasta models com o seguinte conteúdo:
// models/[Link]
class Task {
constructor(id, descricao, finalizado) {
[Link] = id;
[Link] = descricao;
[Link] = finalizado;
}
}

[Link] = Task;

Passo 5: Criar o Repositório do Prisma


Crie um repositório chamado [Link] que utilize o Prisma para realizar operações
CRUD.
// repositories/[Link]
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();

class TaskRepository {
async getAllTasks() {
return await [Link]();
}

async getTaskById(id) {
return await [Link]({
where: {
id: parseInt(id),
},
});
}

async createTask(data) {
return await [Link]({
data,
});
}

async updateTask(id, data) {


return await [Link]({
where: {
id: parseInt(id),
},
data,
});
}

async deleteTask(id) {
return await [Link]({
where: {
id: parseInt(id),
},
});
}
}

[Link] = new TaskRepository();

Passo 6: Atualizar o Controlador para Usar o Prisma


Agora, atualize o controlador [Link] para usar o repositório taskRepository em
vez do modelo antigo.
// controllers/[Link]
const taskRepository = require('../repositories/taskRepository');

[Link] = {
pageCreate: (req, res) => {
[Link]('createTask', { message: null });
},
pageRead: async (req, res) => {
const tasks = await [Link]();
[Link]('tasks', { tasks, message: null });
},
pageUpdate: async (req, res) => {
const id = parseInt([Link]);
const task = await [Link](id);
[Link]('editTask', { task, message: null });
},
pageDelete: async (req, res) => {
const id = parseInt([Link]);
const task = await [Link](id);
[Link]('deleteTask', { task, message: null });
},
getAll: async (req, res) => {
const tasks = await [Link]();
[Link](tasks);
},
getById: async (req, res) => {
const id = parseInt([Link]);
const task = await [Link](id);
[Link](task);
},
create: async (req, res) => {
const { descricao, finalizado } = [Link];
await [Link]({
descricao,
finalizado,
});
[Link]({ message: "Task criada com sucesso" });
},
update: async (req, res) => {
const id = parseInt([Link]);
const { descricao, finalizado } = [Link];
await [Link](id, {
descricao,
finalizado,
});
[Link]({ message: "Task atualizada com sucesso" });
},
delete: async (req, res) => {
const id = parseInt([Link]);
await [Link](id);
[Link]({ message: "Task deletada com sucesso" });
}
};

Passo 7: Utilizar as Rotas para Interação com o Banco de Dados


Por fim, você pode utilizar as rotas existentes para interagir com o banco de dados utilizando o
Prisma.
// [Link]
const express = require('express');
const bodyParser = require('body-parser');
const taskController = require('./controllers/taskController');

const app = express();

[Link]([Link]());
[Link]([Link]({ extended: true }));

// Rotas para manipulação de tarefas


[Link]('/tasks', [Link]);
[Link]('/tasks/:id', [Link]);
[Link]('/tasks', [Link]);
[Link]('/tasks/:id', [Link]);
[Link]('/tasks/:id', [Link]);

// Inicie o servidor
[Link](3000, () => {
[Link]('Servidor rodando na porta 3000...');
});

Certifique-se de testar cuidadosamente todas as operações CRUD para garantir que tudo funcione
conforme esperado.

Você também pode gostar