SQLC para Geração de Código em Go

  **Artigo SQLC para Leitura e Entendimento**   **Título:** Introdução ao SQLC para Geração de Código em Go **Resumo:** Este artigo tem como...

 


**Artigo SQLC para Leitura e Entendimento**

 

**Título:** Introdução ao SQLC para Geração de Código em Go


**Resumo:**

Este artigo tem como objetivo apresentar o SQLC, uma ferramenta poderosa para geração de código SQL e Go a partir de consultas SQL. O SQLC simplifica o desenvolvimento de aplicativos em Go que interagem com bancos de dados SQL, fornecendo uma maneira eficiente e segura de executar operações de banco de dados.


---


**Seções:**


1. **O que é SQLC?**

   

   O SQLC é uma ferramenta de código aberto projetada para facilitar o desenvolvimento de aplicativos em Go que utilizam bancos de dados SQL. Ele permite a escrita de consultas SQL diretamente nos arquivos de código-fonte, e, em seguida, gera automaticamente o código Go correspondente, resultando em uma experiência mais eficiente e livre de erros.


2. **Como Funciona?**

   

   - **Configuração Inicial:** O SQLC utiliza um arquivo de configuração chamado `sqlc.yaml`. Neste arquivo, são especificados detalhes sobre as consultas, como seus nomes, instruções SQL e como os resultados devem ser mapeados para estruturas Go.


   - **Geração de Código:** Após configurar o `sqlc.yaml`, a geração de código é acionada pelo comando `sqlc generate`. Isso analisa o arquivo de configuração e os arquivos SQL, gerando o código Go correspondente na estrutura de diretórios especificada.


3. **Exemplo Prático:**

   

   - **Arquivo `sqlc.yaml`:** Um exemplo simples de um arquivo de configuração pode ser visto abaixo:

     ```yaml

     version: 1

     packages:

       - name: models

         path: dal/models

         queries:

           - name: GetUser

             statement: SELECT * FROM users WHERE id = $1

             result: user

           - name: ListUsers

             statement: SELECT * FROM users

             result: user

     ```

   - **Execução:** Após configurar o `sqlc.yaml`, o comando `sqlc generate` é executado para gerar o código Go na pasta `dal/models` com funções como `GetUser` e `ListUsers`.


4. **Benefícios do SQLC:**

   

   - **Manutenção Simplificada:** O SQLC ajuda na manutenção do código ao automatizar a geração de código repetitivo, facilitando a adição e modificação de consultas.


   - **Type-Safe Queries:** Com o SQLC, as consultas são verificadas em tempo de compilação, proporcionando um ambiente type-safe que ajuda a evitar erros de consulta em tempo de execução.


   - **Integração com Go:** Como uma ferramenta nativa do ecossistema Go, o SQLC se integra perfeitamente aos projetos Go, oferecendo uma solução coesa para manipulação de banco de dados.


---


**Conclusão:**

O SQLC é uma ferramenta valiosa para desenvolvedores Go que trabalham com bancos de dados SQL. Ao automatizar a geração de código, o SQLC permite um desenvolvimento mais eficiente e seguro, proporcionando uma experiência aprimorada ao lidar com operações de banco de dados em aplicativos Go.



Esse código representa um conjunto de consultas SQL definidas para serem usadas com a ferramenta SQLC, que é uma ferramenta de geração de código para Go. As consultas estão relacionadas a operações básicas em uma tabela chamada "artigos". Vamos analisar cada uma das consultas:


1. **ListarArtigos:**

   ```sql

   SELECT * FROM artigos;

   ```

   - **Descrição:** Retorna todos os registros da tabela "artigos".

   - **Nome na Configuração SQLC:** `ListarArtigos`

   - **Tipo:** Consulta que retorna múltiplos resultados (`:many`).


2. **ArtigoPorId:**

   ```sql

   SELECT * FROM artigos WHERE id = ?;

   ```

   - **Descrição:** Retorna um único registro da tabela "artigos" com base no ID fornecido.

   - **Nome na Configuração SQLC:** `ArtigoPorId`

   - **Tipo:** Consulta que retorna um único resultado (`:one`).


3. **CriarArtigo:**

   ```sql

   INSERT INTO artigos (Titulo, Descricao, Imagem) VALUES (?, ?, ?);

   ```

   - **Descrição:** Insere um novo registro na tabela "artigos" com os valores especificados para os campos Titulo, Descricao e Imagem.

   - **Nome na Configuração SQLC:** `CriarArtigo`

   - **Tipo:** Execução (`:exec`).


4. **AtualizarArtigo:**

   ```sql

   UPDATE artigos SET Titulo = ?, Descricao  = ?, Imagem = ?  WHERE id = ?;

   ```

   - **Descrição:** Atualiza um registro existente na tabela "artigos" com os novos valores para Titulo, Descricao e Imagem, com base no ID fornecido.

   - **Nome na Configuração SQLC:** `AtualizarArtigo`

   - **Tipo:** Execução (`:exec`).


5. **DeletarArtigo:**

   ```sql

   DELETE FROM artigos WHERE id = ?;

   ```

   - **Descrição:** Exclui um registro da tabela "artigos" com base no ID fornecido.

   - **Nome na Configuração SQLC:** `DeletarArtigo`

   - **Tipo:** Execução (`:exec`).


Essas consultas, quando usadas com o SQLC, serão convertidas automaticamente em código Go, gerando funções e estruturas de dados correspondentes para facilitar o acesso e manipulação de dados relacionados aos "artigos" no contexto de um aplicativo Go.


COMMENTS



Nome

3d,28,A bela e a Fera,3,Abecedario,110,Abelha,69,Abobora,1,Acessorios,11,Ads,40,AdSense,46,Adwords,1,Aeronaves,2,Afiliados,27,Agulheiros,21,Alfabeto,104,Alfineteiras,28,Alice,4,Alice no pais das maravilhas,6,Alimentos,1,Almofadas,129,Aluminio,1,Amigurumi,284,Animal,43,Animes,100,Aniversario,6,Anjinhos,55,Anuncios,5,Aparador de canecas,10,Aplicativos,5,Apliques,45,Apostilas,143,Aranha,2,Arco iris,2,Arranjos,5,Art,20,Arte,82,Arteiras,22,Artes,55,Artesanato,5900,artesanato Croche,2,Artigos,775,Artisanat,162,Arvores,27,Astronauta,6,Astronave,3,Atividades educativas,157,Atividades para educação infantil,185,Atividades para imprimir,141,Autoestima,1,Aves,2,Aviões,2,Babador,3,Babuska,1,Baby,30,Bailarina,52,Baixar,4,Balão,18,Baleia,8,Bandeirinha,54,Bandeirinhas,61,Banheiro,3,Barbante,3,Barcos,1,Base,1,Bastidor,49,Batizados,6,Bebê,43,Beleza,2,Bendy Dolls,1,Bichinhos,1809,Bichos,113,Bidu,1,Bijuterias,1,Bird,1,Biscuit,20,BJD,1,Blog,54,Blogger,46,Blusa,3,Boa tarde,2,Boas ideias,29,Bode,1,Boinas,2,Bola,4,Boleros,1,Bolo,7,Bolo Fake,3,Bolsa,108,Bolsas,8,Bom dia,13,bon,1,Boneca,449,Boneca de pano,335,Boneca lol,61,Bonecas,934,Bonecos,392,Bonecos de neve,57,Book,1,Borboletas,23,Bordado,141,Bota,31,Botinha,10,Botões,3,Branca de Neve,12,Bricolagem,2,Brindes,10,Brinquedos,18,Bruxa,7,Bruxinha,35,Buque,1,Cabelo,2,Cabra,1,Caça palavras,1,Cachecol,2,Cachorrinhos,91,Cacto,12,Caderno,2,Caixa de leite,1,Caixas,32,Calça,3,Calendario,3,Canguru,2,Capa de Caderno,47,Capas,28,Capinhas para celular,6,Capitao america,2,Caracol,2,Carnaval,5,Carregador,1,Carreira,5,Carrinho,4,Carro,12,Carruagem,4,Carteira,3,Casa,23,Casacos,3,Casal,5,Casamento,3,Castelo,4,Castor,1,Cats,3,Cavalo,16,Cavalo marinho,1,Cegonha,4,Celular,2,Cenoura,1,Centopeia,7,Centro de mesa,40,Cervos,5,Cestas,19,Cha de bebe,35,Chapeu,3,Chaveiro,29,Chaveiros,84,Chinelos,2,Cinema,1,Circo,17,Cisne,3,Clash Royale,1,Coala,3,Cobra,2,Coelho,75,Coelhos,484,Cogumelo,3,Colorir,83,Comidas,2,Como faço,47,Como Fazer,276,Comunhão,1,Construção,1,Contos,1,Contos de Fadas,3,Coração,26,Coroa,6,Corretoras,1,Corte,23,Corte e costura,117,Cortinas,5,Coruja,69,Cosplay,1,Costura,40,Cozinha,7,Crafts,1074,Credito,22,Crianca,32,Croche,585,CupCake,10,Curiosidades,1,Cursos,39,Customização,1,Dado,3,Daisy,1,Deadpool,1,Decoração,409,Decorar,51,Decoupage,2,Dedoches,14,Dente,6,Dentista,5,Desenhos,490,Desenhos para Colorir,440,Dev,7,Dia dos Namorados,10,Diadema,1,Dicas,277,Dicas para blog,45,Dinossauros,40,Disney,83,Divertidamente,10,Diy,86,Diy Ideas,15,Doces,6,Docinhos,8,Dog,3,Doki,1,Doll,54,Dragao,10,Dragon Ball,5,Duende,20,Duendes,62,E.V.A,54,Economia,17,Educação Infantil,238,Educar,107,Educativo,12,Elefante,45,Emoticons,2,Emprestimo,1,Enfeite,33,Enfeites,558,Envelope,1,Enxoval,1,Escola,21,Esconde chave,5,Espanhol,10,Espantalho.,7,Esquilos,7,Estilo,1,Estojo,22,Estrelas,29,Etiquetas,1,Eucaristia,2,EVA,598,Eventos,7,Expressoes,1,Fada,15,Fadinha,14,Fantoches,15,Farol,1,Fashion,6,Faz Facil,4,Fazenda,4,Fazendinha,6,Felt,401,Felting,1,Feltmania,24,Feltragem,27,Feltragem com agulhas,4,Feltreiras,15,Feltro,2505,Feltro 3d,2,Feltro Felt,1,Ferramentas,1,Festa,70,Fieltro,885,Filtro dos sonhos,2,Fimo,2,Finanças,38,Fios,1,Fita,1,Flamingos,4,Flamula,56,Flor,142,Flores,119,Floresta,3,Fofos,1,Foguete,1,Folhas,5,Forex,12,Formatura,6,Formiga,1,Fotos,3,Frances,3,Franjas,1,Frases,121,Frida Kahlo,1,Frutas,27,Fundo,2,Fundo do Mar,16,Fuxico,29,Galinha,33,Ganhar Dinheiro,41,Ganso,2,Gatinhos,146,Gato,51,Girafa,21,Golfinhos,3,Goma,34,Google,4,Gorros,4,Grafico,29,Graficos,80,gratuito,4,Grinch,31,Guarda Chuva,2,Guaxinim,2,Guirlandas,137,Halloween,31,Handmade,189,Handwierker,167,Hello Kitty,6,Heroinas,7,Herois,11,Hipopotamo,9,Historia,1,Homem,1,Homem de ferro,2,Hora de Aventura,1,Host,1,Hulk,1,Humor,2,Ideias,152,Ideias para festa,39,Imagem,1,Imagens,12,imprimir,4,Ingles,2,Insetos,2,Investimento,15,Jacare,4,Jardim,5,Jinx,2,Joaninha,95,Jogo de banheiro,9,Jogos,21,Kawaii,30,Kimono,1,Koala,2,La,11,Laco,12,Laços,21,Lampada,1,Lanches,2,Latas,1,Layout,1,Leao,14,Legumes,2,Lembrancinhas,405,Letras,128,Lhama,11,Ligar os pontos,11,Lilo Stitch,1,Linhas,9,Livro,30,Lobo,1,lol,59,Lua,8,Luva,6,Macaco,10,Macrame,14,Makeup,1,Mandala,1,Manta,6,Manualidades,5293,Maquiagem,1,Marca Paginas,24,Marinheiro,7,Marketing,38,Marvel,1,Mascara,31,Mascaras,480,Máscaras,10,Matematica,16,Maternal,2,Matrioska,4,MDF,1,Meias,17,Meio ambiente,1,Memes,2,Meninas,34,mensagem,7,Mensagens,95,Mercado financeiro,6,Metoo,3,Mickey,19,Mimin dolls,3,Mimos,16,Mingau,1,Minie,12,Minion,4,Minnie,2,Mobile,40,Mochila,15,Moda,19,Modelos,67,Molde,74,Moldes,10362,Moldes 3d,15,Moldes de feltro,1364,Moldes de Silicone,1,Moldes em feltro,313,Moldes para eva,343,Moldes para feltro,940,Molds,7,Molduras,3,Monograma,6,Monstrinhos,2,Moranguinho,10,Motivação,2,Motivos,6,Mulher,16,Muñeca,3,Munecas,19,Mural,22,Musicas,2,Nail-Art,9,Naninha,12,Natal,1477,Navios,2,Necessaire,14,Noivos,3,Novidades,4,Numeros,14,Nuvem,11,Organizadores,1,Origami,3,Orquidea,3,Os Flintstones,1,Osito,1,Ourico,1,Outono,1,Ovelha,21,Ovo,4,Ovos,6,Painel,29,Paisagem,1,Palhaço,16,Palitos,1,Panda,25,Pano,65,Panos de prato,1,Pantufas,14,Papel,12,Papel de parede,34,Pascoa,173,páscoa,1,Passarinhos,55,Passo a passo,10,Patchwork,86,Pateta,1,Patinho,10,Pato,7,Pato Donald,1,Patrones,27,Patrulha Canina,4,Patterns,24,Pegasus,2,Peixes,10,Pelicano,1,Pelucia,41,Pena,2,Penteados,1,Peppa pig,2,Personagens,80,Personalização,2,Peru,1,Peso de porta,28,Peter pan,1,Pets,17,Piadas,1,Picole,1,Pingentes,54,Pinguim,13,Pinoquio,1,Pintar,75,Pintura,116,Pintura em tecido,123,Pirata,5,Placas,3,Plantas,5,Plantilla,3,Pluto,1,Pocket,1,Pokemon,1,Polvo,4,Ponei,1,Ponteira,7,Pontilhados,20,Ponto Cruz,20,Porquinha,1,Porta agenda,1,Porta agulhas,4,Porta Aliança,2,Porta copos,6,Porta docinhos,13,Porta fone,1,Porta Maternidade,44,Porta moedas,13,Porta oculos,1,Porta pano de pratos,9,Porta retratos,17,Porta trecos,10,Portugal,14,Prendedor de cabelo,2,Prendedor de Cortina,8,Presentes,34,Presepio,8,Primavera,1,Princesa,66,Principe,9,Protetor de Berço,17,Publicidade,2,Puff,10,Pulseiras,4,Quadro,37,Quarto,12,Quarto de bebê,20,Quarto de Criança,17,Quebra Cabeça,3,Quiet Book,38,Raposa,29,Ratinhos,24,Rato,5,Receitas,30,Reciclagem,21,Recrutamento,5,Rei,3,Relogio,4,Rena,148,Retalhos,2,Revista,73,Riscos,140,Robo,2,Rosa,12,Rosita,1,Roupas,58,Sache,1,Sacolinhas,27,Safari,25,Sala,1,Sansao,1,Santinhas,8,Sapatinhos,32,Sapinhos,12,Sapo,11,Saquinhos,23,Saúde,1,Scrap,13,Scrapbook,10,Script,1,Seguro,5,SEO,19,Sereia,17,Serie,4,Shorts,6,Show da Luna,1,Silicone,1,Slider,33,Sol,1,Sonic,2,Sorvete,3,Star wars,3,Surpresa,4,Tapete,28,Tartarugas,10,Tear,3,Tecido,176,Teia,1,Tela,1,Tema,4,Tenis,8,Terrarios,1,Thor,1,Tiara,9,Tigre,2,Tildas,4,Toalhas,5,Toalhinhas de mao,4,Toca,1,Topo de bolo,5,Torre,1,Torta,1,Torta Fake,1,Touca,5,Toy Story,2,Toys,1,Trabalhos manuais,639,Trader,2,Trafego,11,Trança,1,Travesseiros,3,Trico,28,Tucano,1,Turismo,2,Turma,11,Turma da Monica,5,Turma do Chaves,6,Tutorial,131,Tv,1,Unhas,5,Unicornio,86,Ursinho,112,Ursinho Pooh,8,Ursinhos,536,Urso,42,Vaca,16,Veados,3,Vegetais,2,Veiculos,3,Velcro,1,Ver e Fazer,3,Verduras,2,Vestido,32,vide,1,Video,50,Videos,741,Visual,1,Wallpaper,56,web-stories,3,Youtube,22,Zebra,4,Zumbi,19,
ltr
item
Ver e Fazer: SQLC para Geração de Código em Go
SQLC para Geração de Código em Go
Ver e Fazer
https://www.verefazer.org/2024/01/sqlc-para-geracao-de-codigo-em-go.html
https://www.verefazer.org/
https://www.verefazer.org/
https://www.verefazer.org/2024/01/sqlc-para-geracao-de-codigo-em-go.html
true
4084861044654339844
UTF-8
Loaded All Posts Not found any posts VER TODOS Ver mais Reply Cancel reply Delete By Home PAGES POSTS View All Veja também LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow Conteúdo Exclusivo Por favor, compartilhe para desbloquear Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy