Um momento
Aula 33
Cursos / Como Criar uma API JSON em Golang - CRUD Simples
Como Configurar Conexão de MySQL com o Golang

Nesta aula movemos a declaração da variável db para o escopo global (no nível de pacote), fora de qualquer função.

Definimos então a função configurarBancoDeDados.

Summary

Resumo do Transcript

Neste trecho, o autor está explicando como configurar uma conexão ao banco de dados MySQL utilizando Go. Aqui estão os principais pontos discutidos:

  1. Definição de Variáveis:

    • Uma variável global db é definida como um ponteiro do tipo sql.DB.
  2. Função de Configuração do Banco de Dados:

    • É criada uma função chamada configurarBancoDeDados, que será chamada antes da configuração do servidor.
  3. Abertura da Conexão:

    • Utiliza-se sql.Open() com dois argumentos:
      • O driver, que é mysql.
      • O DSN (Data Source Name), que inclui informações como nome de usuário, senha, servidor e porta.
  4. Verificação de Erros:

    • A função sql.Open() retorna dois valores: um ponteiro para db e um erro.
    • Um log fatal é acionado se ocorrer um erro durante a abertura da conexão.
  5. Testando a Conexão:

    • Após a abertura, db.Ping() é chamado para verificar se a conexão está ativa.
    • Se ocorrer um erro no ping, um log fatal é chamado para reportar o erro.
  6. Importações Necessárias:

    • Devem ser feitas as importações necessárias para o pacote database/sql e o driver MySQL, com um underscore "_" para inicializar corretamente a interface.
  7. Teste Final:

    • Ao executar o código, não foram encontrados problemas, indicando que a conexão ao banco de dados foi estabelecida com sucesso.
  8. Próximos Passos:

    • Na próxima sessão, o autor mencionou que começará a implementar a funcionalidade para listar livros.

Código Exemplo

// Exemplo da função para configurar o banco de dados
func configurarBancoDeDados() {
    var err error
    db, err = sql.Open("mysql", "usuario:senha@tcp(localhost:3606)/crud_simples")
    if err != nil {
        log.Fatal(err)
    }
    
    if err := db.Ping(); err != nil {
        log.Fatal(err)
    }
}

Conclusão

O autor finaliza o tutorial sugerindo que, na próxima sessão, eles continuarão com a implementação relacionada à listagem de livros.

Video Transcript

Aqui nos packages, data vaze, cadê askele, no índice index, a da open db que a open retorna um ponteiro para esse tipo db que é uma struct, então nós vamos lá no escopo global aqui, eu vou definir uma variável var chamado db, o tipo ponteiro para sql.db, o db vem do sql, ok? Então vamos lá, primeiro a gente vai ter que fazer o que? Comparando aqui o que a gente fez antes, da osql.open, onde faz isso? Vamos ver, bem, poderia fazer aqui antes de configurar o servidor, então vamos configurar banco de dados, vou criar uma função configurar banco de dados, chamando antes de configurar o servidor, vamos fazer o que? Vamos sql.open para poder abrir, para poder iniciar a configuração da conexão, o open leva dois argumentos, o primeiro sendo qual é o driver, o nome do driver que você vai usar, nesse caso vai ser my sql, segundo o argumento vai ser aquele DSN, server name, vai ter usuário, respondo senha, arroba, ctcp, por exemplo, abre parênteses, o interesse, que vai para o porto também adiciona lá, depois disso barra o nome do banco de dados, meu caso eu tenho o meu próprio usuário no meu servidor de my sql, vou usar o meu, vou, dois pontos a senha, favor não use minha senha, e arroba, nesse caso conexão do tipo tcp, parênteses localhost ou 127.0.0.1, dois pontos a porta 3606 do my sql, barra, crude simples é o banco de dados, agora quando fizer isso, retorna duas coisas, o primeiro sendo o ponteiro, varra db, tipo db que é um struct, eu tenho uma variável de sclp aqui, meio global nesse arquivo, então vou dizer db, o segundo é o erro, eu falo erro de abertura, dois pontos igual, não esqueci dos dois pontos nessa vez, vamos ver se deu nenhum problema nesse open, se lembra do detalhe de que o open não vai testar se realmente, não vai iniciar a conexão ainda, tem que usar o pin se você quiser testar se realmente conecta sem erro, depois desse aqui, se você não sabe o log fatal, o abertura, esse vai me dar mensagem de erro, e a gente vai poder imprimir como o log do nível fatal, e ele vai sair do programa na minha hora, se não teve problema a gente vai fazer o que, vai chamar db.ping para poder testar a conexão, erro ping que eu vou falar, se o erro ping não for nil, houve um erro, a gente vai ter que fazer alguma coisa, dar log fatal, erro ping, ponto error, para poder mostrar mensagem de erro, essa função retorna string com mensagem de erro, e depois disso vai estar tudo legal, não precisa mais fazer mais nada, a conexão vai estar estabelecida nesse caso, sem problemas, gradenciais funcionam, então vamos ver se pelo menos a conexão funciona sem erro aqui, vou lá no terminal, vou dizer gol, run, meio em portugou, ah, o que aconteceu, eu quero ver você dizer o que eu fiz já, o que eu esqueci, está dizendo que SQL está indefinido, indefinido porque eu não importei, então vamos lá em cima, não importe, vou adicionar database, barra, SQL, tem também que adicionar aquele importe com o underscore, para poder usar o driver, underscore, como era mesmo, get help.com, barra, go, mySQL, driver eu acho, para esqueci, barra, mySQL, deixa eu ver aqui embaixo, no outro arquivo esqueci já, go SQL, sem o my, driver bar, mySQL, aí tem esse, da plálica aqui né, para poder importar esse driver, e tem um efeito colateral para poder implementar a interface que é definida pelo SQL, SQL, tá, testar novamente de volta ao terminal, então rodou sem problemas, passou pela função e não teve problema, não teve erro então não deu nenhum log fatal, eu dar control C para poder dar o meu servidor, e vamos aqui dar um pause na próxima aula, nós vamos começar o listar livros, a dele estar livros, tá bom? Então até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: