25 de mai. de 2020

Java Desktop - Cadastro CRUD 3.2: MySQL Server

Continuando o projeto, vamos ver a criação da base de dados, usando o MySQL Server. Acompanhe como instalar no Windows e Linux. 

Confira parte 1 e parte 2.
Lista das publicações anteriores:

  1. Java Desktop - Cadastro CRUD - 1.2: IDE IntelliJ
  2. Java Desktop - Cadastro CRUD - 2.2: MVC IntelliJ

Geralmente você encontra em tutoriais um passo a passo para instalar o Xampp ou Wamp. Se preferir instalar o Xampp por exemplo, acompanhe este tutorial

Instalação e configuração



Linux


Antes de falar de instalação no Windows, vou indicar aos que usam Linux, seja Ubuntu ou Mint, acompanharem este vídeo, que é bem detalhado e funciona muito bem. No Linux há muitos ajustes e isso deixaria a publicação muito longa.

Depois de você instalar o MySQL Server e o Workbench, pode rolar a página até a parte onde vemos a criação da base de dados e depois a instalação do Conector JDBC.


Comandos:
  1. sudo apt install mysql-server
  2. sudo mysql_secure_installation
  3. Edite mysqld.cnf e mude bind-address para 0.0.0.0 com o comando: sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf ou sudo xed /etc/mysql/mysql.conf.d/mysqld.cnf
  4. sudo service mysql restart
  5. sudo mysql -u root
  6. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SuaSenha'; Fonte: https://linuxconfig.org/install-mysql...


Windows


Para você instalar o MySQL no Windows, acompanhe a descrição de cada passo, para conhecer os detalhes da instalação; 

Para baixar ou fazer o download do arquivo de instalação, acesse esse link, que leva direto à página de download da versão Community, que é a que interessa para nós, a versão gratuita.



Clique em Go to Download Page. Na próxima janela você verá duas opções, a primeira com um arquivo bem menor do que a segunda.

O arquivo de instalação da primeira opção depende de conexão de internet durante a instalação, para baixar os arquivos necessários, enquanto a segunda opção você pode estar desconectado.

Recomendo a segunda, pois você não corre o risco de ter problemas na instalação se ocorrer uma queda na sua conexão.


java-desktop-crud-mysql

O download ainda não vai começar. Calma, que já vai chegar lá.

Na janela que abre quando você clica em Download, aparece bem grande a opção de criar uma conta gratuita na Oracle, oferecendo algumas vantagens como acesso mais rápido aos arquivos, documentação técnica, fórum e poder enviar eventuais erros ou bugs de sistema.

É com você. Se quiser criar, fique à vontade. Porém, você pode ignorar isso clicando em No thanks, just start my download (Não, obrigado. Apenas comece a baixar esse negócio aí!)


java-desktop-crud-mysql


Framework



Depois de baixado, quando você abrir o arquivo, pode acontecer de aparecer esta mensagem: (se não apareceu, avance para o próximo passo).


java-desktop-crud

Tudo bem. Só um contratempo. Acesse esse link e baixe o NET Framework que ele está pedindo. A instalação é um pouco demorada, mas basta marcar a caixa de seleção na primeira janela, para aceitar os termos, clicar em próximo e aguardar.


Visual C++


Antes ainda de começar a instalação, veja se você tem instalado na sua máquina a versão mais recente do Microsoft Visual C++ (na versão instalada na época desta publicação é a 2019).

Pesquise na barra de tarefas do Windows por programas e abra Adicionar ou remover programas:


java-desktop-crud-mysql

Veja se está instalado o Microsoft Visual C++ (na imagem abaixo, por exemplo, está uma versão antiga, de 2013):


java-desktop-crud-mysql

Vamos precisar instalar a versão mais recente, acessando este link. Faça o download de acordo com a versão do seu sistema (32 ou 64 bits)


java-desktop-crud-mysql

Após baixar e abrir o arquivo, basta marcar a caixa de seleção, para aceitar os termos e Instalar.


Terminada a instalação, se tiver dificuldade para encontrar o arquivo de instalação do MySQL, vá no menu iniciar do Windows e digite na pesquisa mysql. localize o arquivo na lista acima.


java-desktop-crud-mysql


Configuração do MySQL


Quando você abre o arquivo, várias janelas abrem com muitas opções. A primeira é a opção de instalação que você quer fazer. 

O principal aqui é instalar o servidor. A opção seria Server Only. Porém, vamos usar também o Workbench, que é onde vamos criar o banco de dados e tabela para gravar os dados dos clientes, mas na frente.  Por isso, recomendo que você escolha a opção Custom e clique em Next:


java-desktop-crud-mysql

 Na próxima Janela, selecione a opção MySQL Server clicando no sinal de + ao lado para abrir as sub-opções, depois clique na seta para a direita indicada na imagem abaixo, lançando para o quadro à direita. 

Faça a mesma coisa na opção Applications e MySQL Workbench, e deixe como está aparecendo abaixo (depois, clique em Next):


java-desktop-crud-mysql

A próxima janela mostrará as duas opções, informando que os seguintes produtos serão instalados. Basta clicar em Execute.


java-desktop-crud-mysql


Depois que termina a instalação, veremos as janelas de configuração do Server (o Workbench já estará instalado e abriremos ele depois, na hora de criar a base de dados e tabela). Clique em Next.


java-desktop-crud-mysql

A primeira configuração você deixa a opção padrão, que é para uma instância do MySQL, que é o que interessa para nós, e continua - Next.


java-desktop-crud-mysql

Na próxima você escolhe o tipo de configuração do servidor. Novamente, a indicada para nosso projeto é a opção padrão, Development Computer, pois estamos desenvolvendo no mesmo computador que servirá de servidor.


java-desktop-crud-mysql

Novamente, deixe a opção padrão na próxima janela, que trata do método de autenticação no Banco, ou seja, senha.


java-desktop-crud-mysql

Crie a senha de sua preferência no campo MySQL Root Password e repita no campo abaixo. Guarde bem a senha porque você vai precisar usar várias vezes daqui por diante.


java-desktop-crud-mysql

A próxima janela dá a opção, já marcada por padrão, de configurar o MySQL Server como Serviço do Windows e para iniciar o serviço junto com o sistema, quando iniciar o Windows (Start the MySQL Server at System Startup). Se você desmarcar a segunda opção, precisará iniciar manualmente o MySQL sempre que precisar mexer no banco.


java-desktop-crud-mysql

A próxima janela apenas lista tudo que será configurado na sequência. Clique em Execute para concluir essa pequena jornada. Falta pouco agora. 

java-desktop-crud-mysql

Na próxima janela, apenas clique em Finish para fechar a configuração.

Configuração da Base de Dados - Workbench


Tem pelo menos duas maneiras de criar a base de dados e a tabela que iremos usar para salvar as informações dos clientes no sistema. 

  • A primeira, padrão, é digitando os códigos SQL ou, se você já tiver os códigos, copiar e colar;
  • A segunda é através de diagramas - modo gráfico;
Eu poderia aqui simplesmente passar para vocês o código SQL e mostrar como copiar e colar, usando a primeira forma e estaria feito. Porém, a orientação clássica para quem está dando os primeiros passos na programação é: não copie e cole

Os que já sabem SQL de trás para diante, creio eu, não devem se interessar por este guia.

Modelando os dados


Abra o Workbench, usando a pesquisa do Windows como fizemos com a instalação do server (você pode criar atalho depois, é claro).

Vamos criar a base de dados e tabelas usando os diagramas, que é o "meio-termo" - você não vai digitar linha por linha em SQL, porém também não vai simplesmente copiar e colar. 

Assim você também vê cada passo alguns detalhes interessantes que ajudam a visualizar o funcionamento do projeto quando estiver pronto.

Note que o programa é todo em inglês, o que pode te assustar se não estiver muito familiarizado com a língua. Pense que as linguagens já são desenvolvidas em inglês, além das ferramentas de desenvolvimento, como o IntelliJ. Quanto mais à vontade com o inglês você estiver, melhor.




Clique no ícone de diagramas ao lado esquerdo da janela, como indicado pela seta vermelha na imagem acima.

Agora, clique no sinal de + ao lado de Models:



Para criar a Base de Dados, dê dois cliques onde está escrito mydb - MySQL Schema (indicado na próxima imagem):


java-desktop-crud-mysql

Digite no campo o nome cadastrocliente (o nome deve corresponder ao código de conexão visto no Parte 2, no pacote util):


java-desktop-crud-mysql

Criada a base de dados, o próximo passo é criar a tabela cliente, com 10 colunas. Dê um duplo-clique em Add Diagram:





Clique no ícone Place a New Table:



Clique em qualquer região no campo quadriculado branco para criar o diagrama da tabela:



Para dar nome e criar os campos da tabela, basta dar um duplo-clique nela:




Você pode colocar o nome que quiser, porém, para simplificar e deixar padrão para um projeto de cadastro de cliente, dê o nome cliente para a tabela.

Crie os campos como na próxima imagem: id, nome, endereco, municipio, cep, tel, cel, cpf, cnpj e genero (dê um duplo-clique abaixo de Column Name e digite). Lembrando que os campos no banco de dados não possuem acentuação

O primeiro campo é o identificador - ID. Veja na próxima imagem que as caixas PK, NM e AI estão marcadas, enquanto os outros atributos, apenas NM

  • PK é de primary key - chave primária; 
  • NM - Not Null - o campo não pode ser nulo (não vai aceitar salvar em branco);
  • AI - Auto increment - é incrementado automaticamente, ou seja, a numeração do campo ID é somada automaticamente em cada novo registro de cliente que é salvo no banco;





Veja que os campos cpf e cnpj para poderem ser nulos, pois na regra, caso seja pessoa física, não terá CNPJ; sendo pessoa jurídica, não possui o CPF. 

É claro que, dependendo da realidade onde o sistema será usado, talvez seja mais prático deixar mais campos com o NM desmarcados. Um cliente pode ter telefone fixo mas não ter celular, ou vice versa, não saber o seu CEP de repente.


Criando no banco


Até aqui, só modelamos os dados, mas não criamos nem a base nem a tabela no servidor.

Para fazer isso, o caminho parece confuso na primeira vez, mas vale pelo conteúdo que ajuda um pouco a ver ou rever a ideia de linguagem de alto nível e baixo nível;

Clique em Database no menu do Workbench e selecione Forward Engineer. Esse nome esquisito na prática quer dizer transformar a tabela modelada em código SQL, que o banco entende e executa (de linguagem de alto para baixo nível). Veja que acima desta opção está Reverse Engineer que, na prática você faria o contrário - com o código SQL, gera o diagrama (de baixo para alto nível). 



A primeira janela é onde você poderia escolher a conexão em Stored Connection. Neste caso, na primeira vez que ainda não entramos na conexão, basta seguir em frente no Next.
(a próxima imagem é um exemplo de como aparece no Linux Mint)



A segunda janela abre diversas opções que você não dese se preocupar (só são usadas em casos específicos e avançados). Deixe o padrão e vamos de Next.




Agora você precisará daquela senha que você criou para o seu banco. Lembra dela?



Finalmente, quando você clicar em Next, aí sim a base de dados e a tabela serão criadas no banco. Mas antes de clicar, você pode copiar para a memória o código SQL no botão Copy to Clipboard. Assim você pode criar tudo de novo mais rápido se precisar.



Acabou. Criamos o "esqueleto" do banco, a base onde o sistema vai gravar os dados dos clientes. 

Clique em Close para fechar. Agora a parte do banco está completa. 



MySQL Connector/J - JDBC


Para que a conexão ocorra, precisamos instalar o Driver de conexão no IntelliJ.

Entre neste link e clique em Download na terceira opção (JDBC Driver for MySQL...);


java-desktop-crud-mysql

Na próxima janela, escolha a opção Platform Independent:


java-desktop-crud-mysql

Clique em Download na primeira opção (se você estiver usando Linux), ou a segunda se seu sistema for Windows:

java-desktop-crud-mysql

Novamente, abrirá aquela janela te convidando para cadastrar. Clique em No thanks, just start my download para baixar o arquivo.

Precisamos agora criar uma pasta ou diretório no projeto CadCliente (ou o nome que você escolheu), no IntelliJ.

Clique com o botão direito do mouse no nome do seu projeto, New e Directory:


java-desktop-crud-mysql


Dê o nome lib para o diretório. Depois disso, aquele arquivo que você baixou, você precisará extrair e mandar para dentro deste diretório que você acabou de criar. Pode extrair numa pasta vazia na área de trabalho por exemplo. Basta arrastar os arquivos depois.

DICA: No Windows, você pode clicar com o botão direito na pasta lib criada e selecionar Copy Path. Assim você copia o caminho dela no computador e, na hora de extrair o arquivo zip que você baixou (usando o WinZip por exemplo), você cola o caminho e assim extrai direto para a pasta. Se tiver alguma dificuldade neste ponto, mande sua dúvida nos comentários.


java-desktop-crud-mysql

Após transferir os arquivos para lib, selecione novamente o seu projeto e pressione F4, para abrir a estrutura do projeto - Project Structure:


java-desktop-crud-mysql

Selecione Library nas opções à esquerda e clique no sinal de mais + no topo, onde está indicado pela seta, e escolha a opção Java:


java-desktop-crud-mysql

Basta clicar em OK em todas as janelas. Você faz isso para atualizar a biblioteca do IntelliJ (por isso o nome lib, de Library).

Até aqui, já avançamos bastante. Na próxima veremos a classe DAO que serve de ponte entre o banco e os objetos usados no sistema.

Veja também: Java Desktop - Cadastro CRUD - 4: Classe DAO




Nenhum comentário: