Sistema lento, conexao abre toda hora

Ola, gostaria de saber como devo fazer para melhorar o desempenho do sistema:

Exemplo: estou desenvolvendo um sistema de busca de clientes e uma certa parte do sistema cada caractere que a pessoa digita no Jtextfield ele faz a busca no banco e toda vez ele conecta ao banco e desconecta (mysql).

Estou usando DAO, gostaria de saber se teria como ficar conectado para melhorar a performance.

Se não ajudou muito o que perguntei, posso postar meu codigo.

Desde ja obrigado

posta seu codigo para dar uma olhada! :smiley:

PS: Não precisa mostra nao eakpoeakpoea

provavelmente vc precisa de um pool de conexões e/ou cache de dados. pesquise sobre isso :wink:

Cria um singleton para pegar a conexão!

Concordo com nosso amigo acima, cria um singleton para a conexão e faz um cache de dados.

Concordo. Uma solução boa nesse sentido seria usar Hibernate com C3P0 e ehCache. (Te daria mais trabalho, mas acredito que valeria a pena).

Caso você não tenha essa possibilidade, implemente um pool de conexões “na mão” (tá bom, vai, não é difícil).

Essa é, na verdade, uma solução péssima. Existem várias razões para não manter conexões abertas num singleton, entre elas:

a) Reduz paralelismo (você terá problemas com código multi-thread);
b) A conexão poderá fechar subitamente, quando ficar ociosa por muito tempo;
c) Você pode ocupar um recurso de banco desnecessariamente;

A melhor solução já foi comentada. Utilize um pool de conexões. É mais profissional, mais eficiente e não é difícil.

[quote=betocamargo]Ola, gostaria de saber como devo fazer para melhorar o desempenho do sistema:

Exemplo: estou desenvolvendo um sistema de busca de clientes e uma certa parte do sistema cada caractere que a pessoa digita no Jtextfield ele faz a busca no banco e toda vez ele conecta ao banco e desconecta (mysql).

Estou usando DAO, gostaria de saber se teria como ficar conectado para melhorar a performance.

Se não ajudou muito o que perguntei, posso postar meu codigo.

Desde ja obrigado[/quote]

E se você carregar toda lista primeiro, e depois para fazer a busca a cada caracter digitado você manipular essa lista?

bom analisando os comentários acima, realmente é melhor fazer um pool de conexões, se for usar um pool de conexões, use a biblioteca Jakarta Commons-DBCP.

[quote=RafaelViana][quote=betocamargo]Ola, gostaria de saber como devo fazer para melhorar o desempenho do sistema:

Exemplo: estou desenvolvendo um sistema de busca de clientes e uma certa parte do sistema cada caractere que a pessoa digita no Jtextfield ele faz a busca no banco e toda vez ele conecta ao banco e desconecta (mysql).

Estou usando DAO, gostaria de saber se teria como ficar conectado para melhorar a performance.

Se não ajudou muito o que perguntei, posso postar meu codigo.

Desde ja obrigado[/quote]

E se você carregar toda lista primeiro, e depois para fazer a busca a cada caracter digitado você manipular essa lista?[/quote]

Nesse caso, ele terá um cache de dados! ^^

Olha tmbém para o pool de conexões a JNDI.

Se puder.

Valeu pessoal pelas dicas, agora ja sei por onde resolver o problema.

Abraço