Estou disponibilizando no meu canal do YouTube (https://youtube.com/rafaelpinheiro) uma série de vídeos mostrando como desenvolver uma aplicação em linguagem Java (utilizando o NetBeans IDE), se conectando com um banco de dados do MySQL e usando o framework ORM (Mapeamento Objeto Relacional) EclipseLink (https://www.eclipse.org/eclipselink/).
O framework EclipseLink é muito semelhante e tem a mesma função que o Hibernate, ou seja, prover a abstração dos dados de forma simples e transparente, mapeando as tabelas do banco de dados e, a partir delas, criar uma estrutura orientada a objetos (através de classes). Além disso, o framework também oferece “classes controladoras”, contendo métodos para operações corriqueiras no banco de dados (como: insert, update, delete e select). Dessa forma, nós desenvolvedores ficamos mais focados no que realmente importa, que é a regra de negócio do projeto, e a parte de persistência de dados fica a cargo do framework.
O objetivo de criar o presente post (e que, inclusive, será linkado em todos os vídeos dessa série) é fornecer um material de apoio, muito importante para o acompanhamento das aulas. A seguir mostrarei para vocês os requisitos do projeto prático que será desenvolvido, o modelo relacional do banco utilizado, dentre outras informações relevantes.
Sobre o projeto
O projeto desenvolvido terá como objetivo gerenciar o empréstimo (e devolução) de materiais (recursos didáticos) em uma escola (Ex: notebooks, projetores, lousa digital, dentre outros). Para isso, teremos o cadastro de funcionários e o cadastro dos materiais, além do próprio cadastro dos empréstimos e seus itens (os materiais que foram emprestados). O modelo ilustrado a seguir representa o banco de dados da aplicação, com as tabelas, atributos e relacionamentos.

Na tabela “emprestimo” serão salvas as informações do próprio empréstimo, bem como do “funcionario” que retirou os materiais. Enquanto um empréstimo estiver com o “statusemprestimo” definido como “aberto”, a “horadevolucao” se manterá nula. Quando o funcionário devolver os materiais (e consequentemente encerrar o empréstimo), o “statusemprestimo” será alterado para finalizado, e a hora de devolução será armazenada na coluna correspondente.
OBS: Caso queira baixar o arquivo de texto contendo todo o código DDL de criação das tabelas, clique aqui.
Ferramentas
Para o desenvolvimento do projeto “ControleEmprestimos”, vou utilizar as seguintes ferramentas:
- NetBeans IDE 8.2: (https://www.oracle.com/technetwork/pt/java/javase/downloads/jdk-netbeans-jsp-3413153-ptb.html)
- Biblioteca do EclipseLink ORM framework: já disponível no NetBeans IDE 8.2
- MySQL 8.0.18, instalado via pacote WAMP (fique a vontade para instalar manualmente ou através de outro pacote). Tenho um vídeo ensinando a instalar o WAMP: https://www.youtube.com/watch?v=fgnx3QSVSAU.
- Baixar o WAMP Server: https://www.wampserver.com/en/
- Para instalar o WAMP no Windows, é necessário que se tenha algumas versões específicas do Microsoft Visual C++ Redistributable, para que não tenha problemas/conflitos na hora de instalar/executar o WAMP (geralmente o erro erro Msvcr110.dll). Escolha as opções de download de acordo com as especificações do seu Windows (32 ou 64 bits)
- Baixar o Microsoft Visual C++ 2012 Redistributable: https://www.microsoft.com/en-in/download/details.aspx?id=30679
- Baixar o Microsoft Visual C++ 2013 Redistributable: https://support.microsoft.com/en-us/help/4032938/update-for-visual-c-2013-redistributable-package
- Drivers (.jar) do MySQL 8.x: utilizados para que a conexão entre o projeto escrito em linguagem Java seja conectado ao servidor do MySQL. (OBS: caso você esteja usando uma versão 5.x do MySQL, os drivers já são disponibilizados automaticamente pelo NetBeans IDE 8.2).
- Baixar os drivers para MySQL 8.x: https://files.rafaelwendel.com/java/jar_files.rar
- Vídeo ensinando a importar os drivers (tanto para o MySQL 5.x quanto para o MySQL 8.x): https://www.youtube.com/watch?v=grCIbTKPW1U
- phpMyAdmin 4.9.2: é a interface cliente do MySQL que utilizo para administrar o schema (banco de dados) do projeto. Fique a vontade para utilizar outro cliente (MySQL Administrator, MySQL Workbench, etc…)
Caso tenham qualquer dúvida, é só deixar o seu comentário aqui nesse post.
Espero que gostem do conteúdo.
Abs!