Enunciado: Crie um projeto com interface gráfica que contenha ao menos duas tabelas relacionadas entre si com ligação ao banco de dados.
Nessa branch apliquei o design pattern facade, na outra branch (semFacade) está como ficaria o código sem este design a fim de comparação
- Levantamento de requisitos
- Modelagem/criação do banco de dados
- UML
- Interface gráfica
- Classes de conexão de Banco de dados
- Classes de entidades de BD
- Classes DAO
- Conexão interface gráfica e DAO
- Testes finais
- Otimização de código
- Documentação
- As-built, APU
- Registro de aprendizado
- Facade pattern (Link da aula (A partir de 2:39:00))
- Código facade Na outra branch é possivel visualizar como ficaria o código sem facade (vá até o arquivo academiGUI)
- DAO pattern
- Hereditariedade
- JDBC
- Formatação e inserção de datas no BD (SimpleDateFormat) - Código
- Interface gráfica do Java
- JDateChooser (calendario para escolher datas na interface gráfica)
- Autocomplete de comboboxes
Programa que é capaz de adicionar um treino para um aluno de academia, referenciando o professor que o deu.
- O sistema deve permitir o CRUD de alunos, professores e treinos.
- O sistema deve ter uma aba para cada tabela.
- O sistema deve calcular automaticamente a idade do aluno ao demonstrar na interface gráfica.2. O sistema deve ter um selecionador de data (ao invés de um campo text) para o aluno.
- O sistema deve demonstrar os dados do banco de dados em forma de tabela na interface gráfica.
- O sistema deve ter um campo para selecionar treinos por ID.
- O sistema deve ter um campo para selecionar alunos por Nome.
Tabela Aluno deve conter Matricula (Id), Nome, Data de Nascimento e Gênero, pois alguns treinos são somente aplicados a determinadas idades e gênero.
Tabela Professor deve conter apenas seu Id e Nome.
Tabela Treino recebe os id/matricula de professor e aluno, o Nome do treino e uma descrição, além de possuir um id próprio
A seguir alguns gifs com a demonstração do funcionamento pleno do programa para referência.
Antes de iniciar o projeto deve-se alterar no código academiaBD - linha 100 para o usuário e senha do seu mysql e criar o banco de dados utilizado no mysql, no caso "academia" (comando "Create database academia"). Após isso estará pronto para ser iniciado
public static Connection conectar() {
Connection con = null;
final String USUARIO = "root";
final String SENHA = "";
final String URL = "jdbc:mysql://localhost/academia";
try {
con = DriverManager.getConnection(URL,
USUARIO, SENHA);
} catch (SQLException ex) {
System.out.println(ex.getLocalizedMessage());
System.exit(1);
}
return con;
}