Projeto Final Curso de Java Básico

Propaganda
Projeto Final Curso de Java Básico
Este projeto tem o objetivo de permitir seu contato com as funções mais comuns na
maioria dos programas, que são exibição de dados e consulta à base de dados.
O programa criado deverá dar a opção ao usuário de consultar uma base de dados
retornado todas as pessoas de uma tabela ou as pessoas com nome igual a um
parâmetro passado. O fluxo deverá ser repetido até que o usuário escolha a opção
terminar.
Devemos respeitar o padrão MVC (Model View Control) que define que o programa
deve ser modularizado tendo um módulo que representa o acesso aos dados e a
persistência deles (model), outro que representa a apresentação dos dados (view) e
outro para controle de aplicação, onde ficariam as regras de negócio (control).
Esses módulos devem ser o mais independente possível, permitindo uma troca de uma
camada facilmente.
Documentação
O projeto deverá seguir o seguinte design em UML:
Diagrama de caso de uso:
•
•
Caso de uso Consulta todas as pessoas cadastradas
Usuário seleciona a opção de retornar todas as pessoas cadastradas, sistema
exibe a lista das pessoas cadastradas na base de dados.
Caso de uso Consulta Pessoas baseado no nome
Usuário seleciona a opção de retornar pessoas com nome parecidos a um string
passado como parâmetro. Sistema deve exibir a lista de pessoas que têm nome
parecido com o parâmetro.
Diagrama de Classes:
Teremos as seguintes classes e com seus pacotes:
• br.curso.java.RunProgram –
Que deverá somente conter o método main para executar o programa.
• br.curso.java.control.Consultador –
Esta é uma interface que você deverá codificar uma classe que a implemente.
Ela deverá conter os métodos para consulta os quais são passíveis de ter a
lógica do negócio.
• br.curso.java.dao.Dao –
Esta é uma classe abstrata que você deverá codificar uma classe que a
extenda. Ela deverá conter os métodos para acesso ao banco de dados.
•
•
br.curso.java.presentation.ViewLayer –
Esta é uma interface que você deverá codificar uma classe para implementála. Ela deverá conter os métodos para interação do usuário e exibição dos
dados.
br.curso.java.vo.PessoaVO
Classe que carrega os valores de uma pessoa. Os atributos dela devem ser
“id”, “nome” e “sobrenome”. TODOS NÃO DEVEM SER ACESSÍVEIS DE
CLASSES EXTERNAS.
Aqui seguem os diagramas de sequência do projeto. Um diagrama de sequência deve
indicar como deve ser o fluxo do programa dado um caso de uso.
Sequência Consultar todas as pessoas:
Sequência Consultar Pessoa usando nome como filtro
Entregas:
Parte 1: Converta o modelo UML do projeto em classes (não é necessário criar as
classes com prefixo “Sua” somente as interfaces e classes abstratas) .
Parte 2: Implemente as classes do diagrama com prefixo “Sua”. Exceto a classe da
camada de apresentação SuaClasseDeApresentacaoSwing. Implemente a classe de
apresentação que usa a linha de comando usando os métodos System.in.read e
System.out.println().
Parte3: Explique quais seriam os impactos de criar uma classe na camada de
apresentação que utilize Swing (usado para desenhar interface gráfica em java).
Também explique qual seria o impacto que tivessemos que mudar a forma de acesso
ao banco de dados. Explique como o MVC ajudou ou não na modularização do
projeto.
Parte4: (OPCIONAL) Implemente uma interface gráfica usando swing para permitir
a interação do usuário.
Instruções:
Descompacte o arquivo bancodedados.zip em um diretório qualquer. Ele criará a
seguinte estrutura de diretórios:
/database
/runServer.bat
/curso.log
/curso.script
/curso.properties
/server.properties
/lib
/hsqldb.jar
Os arquivos dentro de database são os arquivos da base de dados que será acessada e
um .bat para iniciar o servidor de banco de dados no seu computador. O arquivo
dentro de lib é o jar que contém o código do nosso banco de dados (HSQL). Você
deverá incluí-lo no classpath de sua aplicação para poder conectar ao banco.
Banco de dados
O banco de dados possui a seguinte tabela:
Pessoa
Campo
Tipo
Id
Integer
Nome
Varchar
Sobrenome
Varchar
Ela já está populada com dados somente consultas são necessárias.
dicas:
1. Acesso a banco de dados:
O banco de dados utilizado será o HSQL (www.hsql.org). HSQL é um
banco de dados em java stand alone apropriado para desenvolvimento. Ele
pode ser criado em memória ou em arquivo. No nosso projeto criamos um
banco de dados em arquivo. Para executar o servidor do banco de dados é
somente preciso executar o arquivo runServer.bat
(/database/runServer.bat). Ao executá-lo teremos o servidor de banco de
dados rodando.
Para obter uma conexão ao banco de dados use o seguinte código:
String driver = “org.hsqldb.jdbcDriver”;
Class.forName(driver).newInstance();
String url = "jdbc:protocol[:subprotocol]:dburl/dbname";
Connection conn = DriverManager.getConnection(url,
USERID,PWD);
onde o protocol será “hsqldb” e o subprotocol será “hsql” e o dburl será a
sua máquina local então será “localhost” e dbname é “cursoJava”. Userid
= “sa” senha = “” ou seja vazio
então a url será "jdbc:hsqldb:hsql://localhost/cursoJava"
•
Criação de um statement para consulta ao banco:
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery( SQL );
while(rs.next()){
int a = rs.getInt(“NomeDaColuna”);
String str = rs.getString(“NomeDaColuna”);
}
onde SQL é o sql a ser executado no banco, e NomeDaColuna é o nome
da coluna do registro retornado.
•
•
Você precisará que o jar anexo (mysql-connector-java-3.0.17-ga-bin.jar)
no seu classpath.
Para liberar a conexão com o banco de dados utilize o método close() da
connection:
conn.close();
•
Para adicionar um jar ao classpath é similar a adicionar um diretório:
por exemplo:
para diretórios:
java -classpath c:/dir1/;c:/dir2/ Runner
para jar's:
java -classpath pacote.jar;ibm.jar Runner
para jar's e diretórios:
java -classpath ibm.jar;c:/classe/;c:/lib/meu.jar Runner
•
SQL para retornar todas as pessoas da tabela:
select * from pessoa
•
SQL para retornar pessoas cujo nome inicia com a letra 'a':
select * from pessoa where nome like 'a%'
Download