Qual melhor maneira de manipular os dados?

2 respostas
G

Eae pessoal (Y)

Galera estou com uma dúvida. Qual melhor maneira para se manipular alguns dados. Vou dar um exemplo do meu problema:

Tenho um sistema que cadastra alunos;

Tenho uma classe aluno para manipular os dados do mesmo.

Banco de dados, tenho uma tabela aluno para guardar os dados do aluno;

Tenho uma referência ArrayListalunos

//cadastrar alunos

addAluno(){

alunos.add(new Aluno());

}

A questão é, quando inicializo o sistema carrego todos os alunos do banco na variável alunos…

//recupera alunos do banco de dados

getTodosAlunos(){

while(resultSet.next){

alunos.add(new Aluno(resultSet.getString(nm_aluno));

}

}

…ou seja tenho todos alunos inicializados no sistema prontos para serem usados. Se quero um aluno é só varrer o ArrayList de alunos.
Quando quero cadastrar, cadastro na fila do arrayList alunos e no banco , mantendo este fluxo no sistema.

ESTA É UMA MANEIRA VIÁVEL DE SE MANIPULAR OS DADOS?? NÃO SOBRECARREGARIA O SISTEMA?? EVITAR CONSULTAS NO MySQL É ÚTIL?

tenho um amigo meu que ele não segue dessa forma. Ele cria um objeto de aluno para cadastrar e depois perde a referência ele recupera um determinado aluno no banco, manipula os dados e depois perde a referência… ou seja, faz varias consultas no banco, constantemente…

Me ajudem ai galera, pode parecer besteira, mas eu estou com essa dúvida faz tempo…

2 Respostas

I

Seria interessante utilizar um Map :arrow: http://www.guj.com.br/articles/186

:thumbup:

F

certo.

a resposta é não. os SGBD servem justamente para isso: automatizar a manipulação de dados persistentes. caso vc estivesse trabalhando com uma pequena quantidade de dados isso seria viável (carregar um JSON digamos, editar os dados e persistir).
Agora vejamos: imagine que você tenha 10000 alunos; voce vai carregá-los (todos) na inicialização do sistema; isso vai demorar um monte; aí o usuário vai inserir um aluno na lista (uma operação muito simples) e vai fechar o sistema. vc tem que gravar tudo de novo, para ter certeza de que tudo está atualizado e organizado no arquivo. vc carregou uma cacetada de dados pra memoria e de volta pro disco sem necessidade. mas qual seria a solução? cada vez que vc precisa de um registro vc procura no arquivo e traz os dados pra memoria; trabalha em cima, atualiza, deleta sei la, e dai atualiza o arquivo. isso é exatamente o que um SGBD faz pra vc, de modo automatizado e com uma linguagem capaz de definir regras bastante robustas (SQL). Aí cabe vc estruturar bem o seu software para organizar os dados que vc trabalha em memória (conceito de DAO, etc).

quanto às consultas ao banco: não são custosas enquanto forem simples. quando vc trabalha com muitos dados (muitos mesmo) e com vários relacionamentos (requerem muitos joins) aí é bom começar a pensar em performance. fazer um select pro SGBD é ficha!

Criado 5 de maio de 2012
Ultima resposta 6 de mai. de 2012
Respostas 2
Participantes 3