Skip to content

Sistema com interface gráfica que permite a distribuição de treinos para alunos de academia, com integração ao banco (JDBC)

Notifications You must be signed in to change notification settings

RaphaelSousaSilva/Java-JDBC-Academia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enunciado: Crie um projeto com interface gráfica que contenha ao menos duas tabelas relacionadas entre si com ligação ao banco de dados.

Branches

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

Simulei alguns passos de criação de um programa para aplicar conceitos vistos em aulas:

  1. Levantamento de requisitos
  2. Modelagem/criação do banco de dados
  3. UML
  4. Interface gráfica
  5. Classes de conexão de Banco de dados
  6. Classes de entidades de BD
  7. Classes DAO
  8. Conexão interface gráfica e DAO
  9. Testes finais
  10. Otimização de código
  11. Documentação
  12. As-built, APU
  13. Registro de aprendizado

Sumário

  1. Aprendizados e Conceitos utilizados
  2. Descrição do Sistema
  3. Demonstração do Programa
  4. Configuração

Aprendizados e Conceitos utilizados

  • 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

Descrição do Sistema

Programa que é capaz de adicionar um treino para um aluno de academia, referenciando o professor que o deu.

Requisitos Funcionais do Sistema

  1. O sistema deve permitir o CRUD de alunos, professores e treinos.
  2. O sistema deve ter uma aba para cada tabela.
  3. 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.
  4. O sistema deve demonstrar os dados do banco de dados em forma de tabela na interface gráfica.
  5. O sistema deve ter um campo para selecionar treinos por ID.
  6. O sistema deve ter um campo para selecionar alunos por Nome.

Descrição do Banco de dados

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

Diagrama do Banco de dados

Diagrama do BD

UML das Entidades

Uml entidades do progeam

UML das Classes DAO

UML das Classes DAO

Demonstração do Programa

A seguir alguns gifs com a demonstração do funcionamento pleno do programa para referência.

Tabela Professores - Crud Completo

Crud Professores



Tabela Alunos - Crud Completo

Crud Alunos

Tabela Treinos - Crud Completo

Crud Treinos



Apagando alunos com treinos registrados

Apagando alunos com treinos

Configuração

Conexão Banco de Dados

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;
    }

About

Sistema com interface gráfica que permite a distribuição de treinos para alunos de academia, com integração ao banco (JDBC)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages