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

Pacote Programador Fullstack

Pacote Programador Fullstack

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


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>