Escolar Documentos
Profissional Documentos
Cultura Documentos
Componentes Utilizados
Componentes Utilizados
TABELA: info
NOME TIPO TAMANHO
matricula serial PK (chave primária)
nome characther varying 80 NOT NULL
email characther varying 80 NOT NULL
TABELA: acesso
NOME TIPO TAMANHO
cod serial PK (chave primária)
nome_usuario characther varying 15 NOT NULL
data_acesso characther varying 15 NOT NULL
hora_acesso characther varying 15 NOT NULL
TABELA: login
NOME TIPO TAMANHO
cod serial PK (chave primária)
nome_usuario characther varying 15 NOT NULL
senha characther varying 32 NOT NULL
-- Tabela 'info'
CREATE TABLE info (
matricula SERIAL PRIMARY KEY,
nome VARCHAR(80) NOT NULL,
email VARCHAR(80) NOT NULL
);
-- Tabela 'acesso'
CREATE TABLE acesso (
cod SERIAL PRIMARY KEY,
nome_usuario VARCHAR(15) NOT NULL,
data_acesso VARCHAR(15) NOT NULL,
hora_acesso VARCHAR(15) NOT NULL
);
-- Tabela 'login'
CREATE TABLE login (
cod SERIAL PRIMARY KEY,
nome_usuario VARCHAR(15) NOT NULL,
senha VARCHAR(32) NOT NULL
);
As instruções acima criarão as três tabelas no PostgreSQL com os respectivos campos, tipos de dados e restrições. A
coluna 'cod' é definida como serial, o que significa que ela será preenchida automaticamente com valores sequenciais. A coluna
'nome_usuario' é definida como character varying com tamanho máximo de 15 caracteres. A coluna 'nome' e 'email' em 'info'
são character varying com tamanho máximo de 80 caracteres. A coluna 'senha' em 'login' é character varying com tamanho
máximo de 32 caracteres. Todas as colunas são definidas como NOT NULL para garantir que os valores não sejam nulos.
No padrão MVC (Model-View-Controller), o pacote "modelo" é responsável por representar a camada de modelo da
aplicação. Ele contém as classes e componentes que lidam com a lógica de negócios, acesso aos dados e manipulação dos
dados do aplicativo. A função do pacote "modelo" no MVC é separar e organizar a lógica de negócios e a interação com os
dados da aplicação. Ele encapsula as regras de negócios, as operações de banco de dados e a manipulação dos dados,
fornecendo uma interface para que as outras partes do MVC (a camada de visualização e o controlador) possam interagir com
os dados e a lógica subjacentes.
As principais responsabilidades do pacote "modelo" no MVC são:
1. **Representação dos Dados**: O pacote "modelo" contém as classes que representam os dados da aplicação. Isso inclui a
definição de objetos, estruturas e relações entre os dados. Essas classes são responsáveis por armazenar e manipular os dados
do aplicativo.
2. **Lógica de Negócios**: O pacote "modelo" implementa a lógica de negócios da aplicação. Ele contém os métodos e
algoritmos que manipulam os dados, aplicam regras de negócios e executam cálculos ou processamentos específicos.
3. **Acesso aos Dados**: O pacote "modelo" lida com o acesso aos dados, seja diretamente por meio de chamadas a um banco
de dados ou por meio de camadas de acesso a dados. Ele encapsula a lógica de consulta e modificação dos dados, garantindo
a integridade e consistência dos mesmos.
4. **Validação de Dados**: O pacote "modelo" também é responsável pela validação dos dados de entrada. Ele verifica se os
dados fornecidos são válidos e atendem às regras de negócios estabelecidas. Isso ajuda a garantir a integridade e qualidade
dos dados manipulados pela aplicação.
CLASSES do Pacote MODELO
Caso a Biblioteca não esteja disponível você deverá baixar o driver JDBC do PostgreSQL: Você
pode baixar o driver JDBC do PostgreSQL no site oficial do PostgreSQL ou em repositórios de
bibliotecas Java, como o Maven Central. Certifique-se de baixar a versão correta do driver que
corresponde à versão do PostgreSQL que você está usando.
Classe CRIA CONEXÃO
A classe Banco é responsável por incluir os métodos necessários para manipulação das informações que serão
inseridas, excluídas e alteradas no banco de dados. Esses métodos podem envolver consultas SQL para recuperar informações,
instruções de atualização para modificar os dados existentes e até mesmo operações de exclusão de registros.
A partir de agora serão inseridas novas funções a classe Banco. Adicione as sequencias abaixo a essa classe.
Rotina da Consulta por nome:
O código acima representa um método chamado consultarNome que recebe um parâmetro nome e retorna um objeto
do tipo Contato. Ele realiza uma consulta no banco de dados buscando um registro na tabela "info" com base no nome
informado. O resultado da consulta é armazenado em um objeto ResultSet, que é percorrido com o método next() para verificar
se há um registro encontrado.
Se houver um registro, os valores das colunas "matricula", "nome" e "email" são obtidos do ResultSet e atribuídos ao
objeto Contato criado anteriormente. Por fim, o objeto Contato preenchido com os dados é retornado. É importante notar que
o código assume que a variável conexao representa uma conexão válida com o banco de dados e que o objeto Contato possui
métodos setMatricula(), setNome() e setEmail() para definir os valores dos campos do contato. Além disso, o método lança uma
exceção genérica Exception, o que pode indicar a necessidade de um tratamento adequado dessa exceção em um contexto
real.
Abaixo, o mesmo código foi utilizado para fazer a busca pela Matrícula do aluno. Foi realizada uma pequena alteração na
instrução SQL.
Ao criar o método getLista para retornar uma pesquisa por meio do botão Pesquisar, é necessário importar a biblioteca
java.util.List para que possamos usar a interface List do Java. Ao solicitar a importação das bibliotecas, podem ser
oferecidas várias opções. Certifique-se de selecionar a biblioteca correta que contém a interface List.
CLASSES do Pacote VISÃO
PACOTE VISÃO – TelaLogin
Esse código deverá ser criado como um método independente na TELA LOGIN
Esse código representa uma função de login. Ele verifica se o nome de usuário e a senha inseridos correspondem a
um login válido, usando um objeto da classe Banco. Se o login for válido, exibe uma mensagem de sucesso, cria e exibe uma
nova tela chamada TelaAmigos, e fecha a tela atual de login. Caso contrário, exibe uma mensagem de erro, limpa os campos
de texto do nome de usuário e senha, e define o foco no campo de texto do nome de usuário para que o usuário possa tentar
novamente. Se ocorrer alguma exceção durante o processo de login, uma mensagem de erro será exibida.
Após o desenvolvimento do Código, adicionar as Instruções a seguir nos botões CANCELAR e ACESSAR.
Observe que na rotina do botão Salvar foi utilizado um método chamado LimparCampos(). Esse método deve ser criado de
forma independente antes da CHAVE ( } ) de fechamento da classe para que o mesmo possa ser utilizado em outras rotinas,
sem que se precise ficar repetindo o código para limpeza das caixas de texto.
Excluir Registro
Alterar Registro
Explicação:
A linha DefaultTableModel tmContato = new DefaultTableModel(null, new String[]{"matricula", "nome", "email"}); cria
um objeto DefaultTableModel chamado tmContato que representa o modelo da tabela de contatos. Ele recebe dois
argumentos:
null: Representa os dados iniciais da tabela, que neste caso estão vazios.
new String[]{"matricula", "nome", "email"}: Representa os nomes das colunas da tabela. Aqui, são especificados os
nomes "matricula", "nome" e "email" para as colunas da tabela.
A linha List<Contato> contatos; declara uma variável chamada contatos que é do tipo List<Contato>. Essa variável será
usada para armazenar uma lista de objetos do tipo Contato. No momento da declaração, a lista ainda não foi inicializada.
A linha ListSelectionModel lsmContato; declara uma variável chamada lsmContato que é do tipo ListSelectionModel.
Essa variável será usada para gerenciar a seleção de itens na tabela de contatos. No momento da declaração, o modelo de
seleção ainda não foi inicializado.
Depois do código adicionado;
1. Clicar com o botão direito do mouse no table (tblContatos) ir até as
propriedades, depois procurar pela propriedade Model.
2. Clicar ... e escolher Código Personalizado.
Explicação:
O método mostraPesquisa recebe uma lista de contatos como parâmetro.
O loop while remove todas as linhas existentes no modelo da tabela (tmContato) usando o método removeRow(0). Isso
garante que a tabela esteja vazia antes de preenchê-la com os novos dados.
É verificado se a lista de contatos está vazia (contatos.size() == 0). Se estiver vazia, exibe uma caixa de diálogo informando que
não há contatos cadastrados. Caso contrário, a lista de contatos contém elementos, então um array de Strings vazio (linha) é
criado para preencher as linhas da tabela. Essas linhas serão adicionadas ao modelo da tabela.
Em um loop for, percorre-se a lista de contatos. Para cada contato, uma nova linha é adicionada ao modelo da tabela
usando o método addRow do tmContato. Os valores dos campos do contato são definidos nas colunas correspondentes
usando o método setValueAt do tmContato. Para cada contato, o valor da matrícula é definido na coluna 0, o valor do nome na
coluna 1 e o valor do email na coluna 2. No final, o modelo da tabela (tmContato) estará preenchido com os dados dos contatos,
que foram passados como parâmetro para o método mostraPesquisa.
Explicação:
O método ListarContatos é responsável por buscar a lista de contatos no banco de dados e exibir os resultados na
tabela. É criada uma instância da classe Banco, que provavelmente é a classe responsável pela comunicação com o banco de
dados. O método getLista do objeto dao é chamado para obter a lista de contatos. É passado como parâmetro o texto digitado
no campo de pesquisa (txtPesquisa.getText()) com o operador % adicionado antes e depois para realizar uma busca parcial. O
resultado da busca é armazenado na variável contatos. O método mostraPesquisa é chamado, passando a lista de contatos
como parâmetro. Esse método é responsável por preencher a tabela com os dados dos contatos obtidos na busca.
Finalizar Aplicação