Gente to pensando em como resolver um problema de performance aqui!
O que vocês acham, eu tenho uma lista que esta rodando na aplicação e a cada vez q eu der um “next()” ou “previous()” o sistema puxa um List novo do banco e seta em cima do que esta rodando?
PS.: tenho q manter o sistema sempre atualizado, pois apesar de ser desktop é multi-usuário!
acredito… criando uma thread para verificar as alterações no banco e populando uma lista com acesso sincronizado pode poupar umpouco o client-side…
você esta usando algum framework ORM?
Estude o Glazed Lists, no site, se não me engano, há um exemplo de um modo otimizado de você mostrar sempre o conteúdo do banco do jeito que você está querendo.
Como estou sem acesso ao site, não consigo lhe indicar a URL exata dese exemplo.
[quote=rdgms]acredito… criando uma thread para verificar as alterações no banco e populando uma lista com acesso sincronizado pode poupar umpouco o client-side…
você esta usando algum framework ORM?[/quote]
Bah amigo depois da “thread” eu não entendi mais nada do que você falou :?
Não tenho muita experiencia ainda! Estou usando NetBeans 6.8 + PostGree 3.7.3!
Você pode me dar um exemplo de como fazer essa thread sincronizada? ou me indicar algum site?
vlw
[quote=entanglement]Estude o Glazed Lists, no site, se não me engano, há um exemplo de um modo otimizado de você mostrar sempre o conteúdo do banco do jeito que você está querendo.
Como estou sem acesso ao site, não consigo lhe indicar a URL exata dese exemplo.
[quote=guisantogui]Gente to pensando em como resolver um problema de performance aqui!
O que vocês acham, eu tenho uma lista que esta rodando na aplicação e a cada vez q eu der um “next()” ou “previous()” o sistema puxa um List novo do banco e seta em cima do que esta rodando?
PS.: tenho q manter o sistema sempre atualizado, pois apesar de ser desktop é multi-usuário![/quote]
Mas com esse next() ou previous() mostras apenas um registo? Então porque ir buscar todos e não apenas o necessário?
Tipo essa parte da aplicação eu tenho q buscar os dados de um banco de dados, mas como o sistema vai ser usado silmultaneamente em varios computadores algum registro pode ser mudado em uma maquina e na outra quando o usuário for pegar o dado vai ter que estar atualizado!
Sim, mas acho que ai esta a chave do problema como eu vou saber em qual posição eu ando na minha aplicação? já q serão navegações distintas entre os vários computadores!
Não precisas de te preocupar com as navegações distintas nos vários computadores. Apenas tens de garantir que, um computador está num determinado registo, e queres o próximo ou o anterior. Se essa lista é obtida através de um SQL, facilmente se alterar esse SQL para dar o próximo ou o anterior com base no actual.
Pelo que entendi, o cliente 1 estará vizualizando o registro 1, ou seja, sua aplicação não precisa de uma lista.
Você tem uma lista com, sei lá, 100 objetos, que você ‘pegou’ do banco de dados.
Gerar essa lista com 100 registros só seria necessário se você fosse mostrar tudo isso na tela, ou seja, mostrar numa JTable esses 100 registros.
Se você tem uma JTable mostrando de 10 em 10 registros, o seu botão next, apenas tem que mudar o valor do setoff e em seguida atualizar a JTable (vai de novo no banco, invés de pegar do 0 ao 10, pegue do 10 ao 20, volta e joga na tabela.).
Fim.
Se der pra postar o porque dessa aplicação, pra que ela vai servir e talz, vai ajudar muiiito.
"SELECT fc.descricao, fc.cheque, fc.rotativo, fc.tipo_conta, fc.dt_ult_fechamento, fc.dt_encerramento, fc.soma_saldo, fc.utilizado_rotativo, fc.cod_fnbanco, p.nome, fc.limite FROM fn_conta AS fc INNER JOIN pessoas AS p ON p.codigo = fc.cod_pessoa LIMIT 1 OFFSET " + posAtual
posAtual sendo um atributo de classe que incrementa quando vai next() e decrement quando vai prev()