Video Transcript
Olá pessoal, estamos de volta.
Então na aula passada nós demos um alho nos métodos que a gente vai utilizar para poder
fazer queries, consultas e SQL na Go.
Nesta aula eu gostaria da gente fazer a tabela, o banco de dados e a tabela para poder utilizar
o nosso aplicativo.
Nesta aula eu não vou te ensinar como instalar o MySQL, eu vou deixar com você como exercício,
tá?
Então já tem um servidor de MySQL rodando aqui na minha máquina, se eu pôr no meu terminal
aqui eu tenho até o cliente de MySQL que eu abri aqui, comando MySQL, traço o nome do
usuário que eu criei para o banco de dados e traço o P para poder entrar sem.
Quando eu deixo o database aqui, tem os databases, mas ainda não tem a database do banco de dados
para o nosso aplicativo, então a gente vai criar.
Poderia criar tudo usando aqui a linha de comando aqui, por exemplo, criei tela-base, vou falar
o nome da database crude-simples e criei, eu vou dar show database de novo, apareceu
aqui, vou usar o use crude-simples, é o nome do banco de dados, show tables, mostro as
tabelas, não tem nenhuma tabela.
Agora eu gostaria de fazer o seguinte, em vez de criar tabela no cliente de MySQL,
vamos criar tabela aqui usando um script de gol, um código de gol para poder fazer
as coisas para a gente praticar, em vez de fazer isso na mão aqui no MySQL, vamos fazer
um código de gol para a gente praticar mesmo.
Então vamos lá, primeiro a gente tem que fazer o seguinte, a gente vai precisar lá do
driver aqui, para poder instalar esse pacote aqui de gol, aqui embaixo como dizer, é bem
simples como a gente já viu, gol get, traçou o endereço que na verdade é o próprio endereço
da URL aqui, mesma coisa.
Vamos aqui no terminal, cadê o...
Eu estou na parte do projeto, vou falar gol get, passo get, passo traço o endereço,
gethub.com, barra gol, traço SQL, traço driver, barra mais SQL.
O que é que isso vai acontecer?
Ele vai baixar lá o código e vai compilar e vai pôr o exacto no gol bem, lembra?
Se eu pôr aqui na pasta do gol path, você nota que o SCIC, barra gethub, barra
gol SQL driver mais SQL, está aqui o código, ele baixou e compilou aqui na pasta bem,
ou no pkg na verdade, vamos ver.
Agora eu volto com... está aqui no pkg na verdade, mas quer o pontuar um pacote, tá?
Então vamos continuar, já temos o pacote instalado, então a gente pode usar,
de volta o editor de texto, vou criar um novo arquivo chamado criar,
na justcordetabela.go que eu já fiz aqui, vou pôr pacote main mesmo, e a função main.
A nós que a gente vai rodar esse programa aqui para poder criar a tabela, tá?
Em vez de criar a tabela usando o cliente demais que ela na mão, a gente vai usar um código de gol
lang só para praticar mesmo.
Então vamos fazer umas coisas aqui, vamos ver, primeiro vamos fazer o seguinte,
vamos fazer o comentário aqui, vamos abrir a conexão, né?
Para o mais SQL, depois disso... ah, paro de auto completar, depois disso vamos fazer
um criar tabela, depois disso vamos criar uns recordes, uns registros, só de amostra.
Então para abrir a conexão, como é que vai fazer?
Como é que vai fazer? Bem, você vai precisar chamar o SQL.open, SQL.open.
Agora, como está usando SQL, tem que importar aqui em cima,
eu vou dar um import aqui, data base barra SQL.
Agora, como tem que usar o driver, tem que também fazer esse import meio esquisito, import
espaço underscore, está ligado underscore, espaço e o endereço lá,
getup.com barra, qual era? Go, SQL driver será aqui isso mesmo, eu esqueci,
ver que não termina, go, SQL driver, não tem mais,
vamos confirmar lá no página de documentação,
getup.com barra, go, traça SQL driver, traça SQL, ok, está bem, está certo.
Então tem esse negócio aqui do underscore, porque o que acontece é essa data base barra SQL
define um interface, você pode definir esse interface para poder,
na verdade o driver define a interface que é declarada aqui no database barra SQL.
E a maneira de você fazer importar essas definições, como efeito colateral,
o side effect, é através desse import aqui com underscore entre a palavra import,
as, as tringas aqui, tá?
Então com isso ele vai pegar e o SQL vai agora se referir a usar o driver do MySQL.
Tá bom, vamos lá, vamos SQL da ponto open aqui, a primeira, a primeiro argumento
vai ser você vai usar o MySQL, o segundo vai ser o endereço de tudo,
vai incluir o usuário, senha, endereço, TCP, porta e o nome da banca de dados
e várias outras opções, esse é chamado o source, né, o, a fonte.
Você quiser saber mais sobre isso, de novo, vai lá na documentação
database barra SQL, na página do golang.org, barra pkg, barra database barra SQL,
no índice aqui vai na função, a de função open, e tem dizendo que o primeiro argumento,
o nome do driver, MySQL, o segundo é o data source name, data source name, ele tem,
data source name, não sei se ele lhe disse muito sobre isso,
a diz aqui na página do driver, se você volta lá ele diz o data source name,
qual é o formato, esse formato aqui é o inteiro, tem várias, várias opções,
vai não precisar por todas, você vê aqui a primeira ao usuário, 2 pontos senha,
a robo protocolo por exemplo, TCP, nos parâmetros o põe endereço, por exemplo,
localhost, 2 pontos, a porta 3606, a barra o nome do banco de dados,
disse que se quiser mais adicionar parâmetros com o sinal de intervação aqui também,
pode, o mais simples que ele fala aqui é só por barra dbnm, que ele vai ver usar os valores para dois.
Então vamos voltar ao editor de texto, vou botar aqui o seguinte, o meu usuário,
vai ser o meu usuário que eu criei no meu banco de dados, vai ter o seu próprio,
2 pontos, qual é a senha, aqui é a minha senha, não copie, a minha senha,
a robo, pode dizer TCP, vou botar parântesis localhost,
ou pode ser 127.0.1, a 2 pontos, a porta do mais que ela, 3606,
barra o nome do banco de dados, eu criei um banco de dados cru de simples,
se lembra lá no terminal, eu já feito cru de simples, essa data base.
Então é isso, agora o SQL ponto open retorna duas coisas, primeiro retorna um objeto db,
e segundo vai ser o erro, pode ser erro ou abertura.
Se der erro, isso é, se o erro ou abertura não for new, significa que deu erro,
não sei o que fazer agora, vou falar log.fatal e talvez o erro ou abertura.error,
se você quiser saber o que é que esse, de onde é que esse erro, vai lá na documentação,
de novo, na documentação do database SQL e fala, open retorna duas coisas,
um ponteiro para o db e o erro, o que é que é erro, clica aqui, e ele te mostra,
é um tipo interface, tem esse método chamado error que retorna a descrição do erro, string.
Agora, vou usar o log aqui, tem que importar também, import log.
Vamos ver se funciona aqui, terminal, aponta o projeto, fala go, run, agora,
criar tabela.go, vamos ver aqui, esqueci dois pontos, antes do igual, dois pontos igual,
senão tinha que usar var com o tipo, db declarado e não usar, então precisamos usar
100, 100 coisas, porque eu ainda não usei.
Pronto, agora tem um detalhe aqui do db, ver se eu posso fazer aqui para você ver isso.
Vamos fazer o seguinte, vou fazer um query aqui primeiro, vou fazer db, ponto, query,
e lá, vamos ver se funciona, showtables, nem sei se showtables vai funcionar aqui,
quero só ver uma coisa, só para ter algo para dar o erro lá,
então não teve erro, só fiz isso para não poder reclamar aqui.
Vai ter o seguinte aqui, se você matar o servidor, isso aqui não vai dar erro,
porque quando você fala, esquellow, ele vai configurar o negócio,
mas ele não vai testar se deu certa credencial aqui da conexão,
se não funciona, só vai dar para saber quando fazer um query,
ou se você quiser fazer aqui, é só fazer o pin, você fala db, ponto pin,
aí ele retorna o erro, aí se der erro pin, significa que a conexão não conseguiu
se conectar direto, vou dar logo para tal, erro pin, error, como a minha
bacoteira está rodando ainda, eu esqueci, dois pontos de novo,
hábito de outras linguagens, certo, então para testar isso, deixa eu ver como é que
eu vou fazer, vou abrir o negócio aqui, do lado estou digitando, para matar o servidor,
então espero um pouco que eu vou matar o servidor de mais que L que tenho aqui,
eu disse mais que é o ponto server, stop, no meu caso, pronto, eu matei o servidor,
vou botar, agora para você confirmar isso, exit, vou dar o tentar logo aqui,
disse que não pode desconectar, porque está desligado, servidor, vou comentar a linha do pin,
para você ver que realmente ele não dá erro, eu comentei essa linha para não executar,
vou dar o go rank e a tabela de novo, o negócio não deu erro, servidor está desligado e não
falou nada, então por isso que tem esse ping aqui, só para saber no começo se realmente
funcionou, com o ping lá ele já falou, não conseguiu se conectar,
conexão receitada, vamos continuar então, deixa eu redistirar o meu servidor,
eu dei mais que é o ponto server, aqui do lado, vou falar de novo, agora não teve mais problema,
o servidor está ligado agora, bom, use cru de simples, showtables, não temos nenhuma tabela ainda,
adio, então para essa aula é só, começamos aqui o nosso arquivo, fizemos abrirmos a conexão
aqui, na verdade configuramos a conexão, o open não abre a conexão ainda, só na hora
que fazer query, ou quando você fizer o ping, para checar antes de fazer as coisas,
vamos deixar isso aí e vamos na próxima aula, continuar na criação tabela, então até mais.