Aplicação + BD Como organizar? E Busca incremental?

1 resposta
FightSurf_George_Mai

Boa tarde. Gostaria de tirar umas dúvidas.

Estou migrando para java uma pequena aplicação desktop… e em outras linguagens, costumo programar desta maneira:

  • Primeira classe para a aplicação;

  • Segunda Classe para retornar uma conexão da aplicação com o banco e depois fechar essa conexão quando solicitado;

  • Terceira classe onde armazenará as SQL’s, solicitando abertura e fechamento de conexões com o banco, usando a segunda classe, nesta sequencia: ABRE CONEXÃO, ENVIA SQL PRO SGBD RETORNANDO RESULTADO, FECHA CONEXÃO.

Perguntas:
1 - Posso continuar sempre modularizando desta maneira programando em Java?

2 - Na minha terceira classe, eu utilizo o construtor dela para instanciar um obj CONNECTION da segunda classe abrindo a conexão por lá. Posso utilizar tipo um destrutor para fechar esta conexão? Como faço isso em Java?

3 - Se eu fizer uma busca incremental em meu banco pela aplicação, tipo escrevendo em um JTextField letra após letra e após cada entrada de caracter a aplicação fazer uma consulta no banco filtrando os resultados de um select procurando por um nome, por exemplo, e mostrando tudo em um grid. Se for num ambiente cliente/servidor a rede vai ficar super congestionada se cada cliente fizer uma solicitação destas em cada letra do nome a ser pesquisado.

Temos alguma maneira em java de colocar a cópia de um resultado parcial em memória e depois pesquisarmos em cima dessa cópia? como um clientdataset do Delphi? Qual a alternativa para se fazer isso?

Obrigado.
Abraço a todos.

1 Resposta

Hagar

Sim! Java é perfeito para aplicação das regras da OO e modularização do código!

Java não tem um destrutor à lá C++… Quem faz esse trabalho de limpeza de memória é o Garbage Collector. E ele faz quando bem entender, você não tem como controlá-lo. Mas nesse caso, você pode simplesmente implementar um método que finalize a conexão com o banco…

É, fazer assim não é a melhor forma, nem mesmo se a aplicação não for cliente/servidor. Eu faria uma carga dos dados do BD em memória e depois a pesquisa… Assim vc “economiza” acesso ao disco que é lento comparado com acesso à memória!

Não conheço quase nada de Delphi, entao nao sei se é isso que vc quer… Mas pesquise em como usar PreparedStatement e ResultSet (em qualquer exemplo que use bd em java tem isso…). Acho que resolve o teu problema.

E já que você está trabalhando com BD, tomo a liberdade de dar uma sugestão: leia esse artigo (http://www.guj.com.br/java.tutorial.artigo.115.1.guj) sobre como tirar os comandos SQL do código. Fica bem mais limpo!

flw!

Criado 21 de março de 2008
Ultima resposta 21 de mar. de 2008
Respostas 1
Participantes 2