Aula 03 – Golang – Fiber – Banco de Dados MySQL

Aula 03 – Golang – Fiber – Banco de Dados MySQL

Voltar para página principal do blog

Todas as aulas desse curso

Aula 02                                               Aula 04

Fiber

Fiber

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Sigam o Código Fluente no Instagram e no TikTok.

Link para a Digital Innovation

Quer aprender python3 de graça e com certificado? Acesse então:

workover

Meus link de afiliados:

Hostinger

Digital Ocean

One.com

Código da aula: Github

Melhore seu NETWORKING

Participe de comunidades de desenvolvedores:

Fiquem a vontade para me adicionar ao linkedin.

E também para me seguir no GITHUB.

PIX para doações

PIX Nubank

PIX Nubank

Se quiser copiar o código do PIX:

00020126580014BR.GOV.BCB.PIX013643c5f950-535b-4658-b91f-1f1d135fe4105204000053039865802BR5925Antonio Cavalcante de Pau6009SAO PAULO61080540900062070503***6304946B


Aula 03 – Golang – Fiber – Banco de Dados MySQL

Nessa aula iremos criar o banco de dados e conectar usando gorm.

Se você não tiver o mysql instalado no seu sistema, instale o mysql workbench, segue o link:

https://dev.mysql.com/downloads/workbench/ 

Depois de instalado, crie um esquema para ser usado no app.

Execute o seguinte comando SQL, ou clique no icone parecido com um barril na interface gráfica do mysql workbench.


CREATE SCHEMA `fluent_admin`;

Criamos com o comando acima, o esquema chamado go_admin.

MySQL Workbench

MySQL Workbench

Instalação do Gorm

Agora vamos instalar o gorm no projeto.

Ele vai nos ajudar na conexão com o MySQL.

Para instalar, execute:


go get -u gorm.io/gorm

Agora instale o driver do mysql.


go get -u gorm.io/driver/mysql

Em Go não temos try catch, e as funções podem retornar múltiplos valores.

Esse recurso é explorado em Go para tratar eventuais erros, por exemplo, o banco de dados pode tá fora do ar, e aí então uma função responsável por conectar ao banco vai retornar um erro na variável err, ao invés de conexão bem sucedida.

Nesse caso a variável db vai ter o valor nil e err tem um valor diferente de nil.

Caso o banco esteja disponível e o app conecte sem problema, será o contrário, err vai  ter nil e db um valor diferente de nil, na verdade um ponteiro.

Ou seja, err sempre vai receber um valor, ou nil ou um valor diferente de nil.

É por isso que temos ele na função Get:

app.Get(“/”, func(c *fiber.Ctx) error { … 

Na string de conexão com o banco temos:

O user em lilás, o password em vermelho e o banco em verde.

Agora altere o src/main.go para ficar assim:

fiber-project/src/main.go


package main

import (
	"fmt"

	"github.com/gofiber/fiber/v2"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

func main() {
	var dsn = "root:mysql1234@/fluent_admin?charset=utf8mb4&parseTime=True&loc=Local"
	var v = "Não conseguiu conectar ao banco de dados"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

	if err != nil {
		panic(v)
	}
        fmt.Println("conexão OK!")
	fmt.Println(db)

	app := fiber.New()

	app.Get("/", home)

	app.Listen(":3000")
}

func home(c *fiber.Ctx) error {
	return c.SendString("Hello, World 👋!")
}

E para testar se conectou ao banco sem problema, execute:


go run main.go

Saída de sucesso será algo tipo:

Conexão OK!
&{0xc00029a2d0 0 0xc00035c000 1} 

Ou se não consegui conectar ao banco mostrará a mensagem de erro:

Não conseguiu conectar ao banco de dados 

Por agora é só, nos vemos na próxima, até lá!

Código da aula: Github

Voltar para página principal do blog

Todas as aulas desse curso

Aula 02                                               Aula 04

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Link do código fluente no Pinterest

Novamente deixo meus link de afiliados:

Hostinger

Digital Ocean

One.com

Obrigado, até a próxima e bons estudos. 😉

 

 

About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>