ResultSet em Applets

9 respostas
gfcittolin

Olá a todos :slight_smile:

Estou tendo um probleminha com uma applet. O objetivo dela é acessar e modificar dados de um banco de dados.

Eu estava pensando em a applet se conectar com um servlet, ele devolve um resultset, e eu mexo nesse resultset. Aí que está o problema. Não sei como que faço para manter uma conexão com o servlet e ir editando o resultset e ir refletindo no banco.

Ou eu posso pegar o resultset, mecher nele, e depois enviar ele devolta para o servlet para salvar no banco, mas também não sei se há como fazer isso.

Vi também aqui no fórum sobre VJDBC, só que disseram que não é muito bom a applet se comunicar diretamente com o banco.

E aí, alguém tem uma luz? to bem perdido. O que seria melhor?

Muito obrigado
[]'s

9 Respostas

P

Uma solução é a utilização de RMI!!!

O

Acho que o VJDBC é a solução ideal para o seu problema. O que foi comentado em tópicos é que por questões de segurança nunca se deve fazer o applet conectar diretamente ao banco de dados. O VJDBC evita justamente isto, pois faz com que o applet se comunique com um servlet ou RMI server.

Com relação a conexão, o VJDBC faz este gerencimento por cliente, mantendo a mesma conexão.

gfcittolin

Ahn… então ele se comporta como se fosse uma “conexão local”, ou seja, posso fazer alterações no resultset que peguei e estas se refletirão no banco?

Ah, alguém sabe de algum tutorial para VJDBC? andei procurando mas não achei nada explicativo, só implementações prontas.

valeu plic_ploc, valeu oyama

[]'s

T

Você precisa de tutorial? Parece que é só mudar a sua string de conexão, e deixar algumas portas abertas para poder acessar (se for usar RMI).
http://vjdbc.sourceforge.net/

gfcittolin

Achei bem legal esse VJDBC. Só que não vai servir para o meu caso. Olhem este trecho da documentação:

“VJDBC-ResultSets are read-only, they are not updatable. You will get UnsupportedOperationExceptions when you call the update…() methods.”

Ou seja, não vai dar pra mim fazer atualizações no banco, meu objetivo principal.

De que otras maneiras posso fazer autalizações no DB? Dá pra mim, através de um servlet, pegar um resultset, fizer as alterações, e depois chamar o servlet novamente para ele ler o resultset modificado e atualizar no banco?

Muito obrigado a todos

[]'s

O

gfcittolin:
Achei bem legal esse VJDBC. Só que não vai servir para o meu caso. Olhem este trecho da documentação:

“VJDBC-ResultSets are read-only, they are not updatable. You will get UnsupportedOperationExceptions when you call the update…() methods.”

Você está trabalhando com ResultSet.CONCUR_UPDATABLE?
O VJDBC realmente não suporta isto.

gfcittolin:
Ou seja, não vai dar para eu fazer atualizações no banco, meu objetivo principal.

De que outras maneiras posso fazer atualizações no DB? Dá para eu, através de um servlet, pegar um resultset, fizer as alterações, e depois chamar o servlet novamente para ele ler o resultset modificado e atualizar no banco?

O ideal é você não trabalhar com ResultSet na sua camada de apresentação. Aplique os patterns DAO e MVC. Crie entities que “transportam” os dados entre o applet e o seu servidor, e persista e leia através de DAOs. Usar o Hibernate vai te ajudar muito nisto.

Como solução paliativa usando o VJDBC, ao invés de atualizar os ResultSets, transforme estas atualizações em comandos SQL e execute-os.

gfcittolin

Assim:
Meu objetivo é uma solução para alterar dados dinâmicos de um site, de um jeito rápido e prático. Pelo que vi, as pessoas têm mais facilidade em usar aplicações desktop (com algum visual parecido com a suíte Office, por exemplo) do que navergar por páginas da web.
Criar uma aplicação seria útil, mas seria ruim ter que baixá-la cada vez qeu fosse editar num micro diferente. Pensei que jApplets seriam uma solução viável, pois ‘oferecem os recursos de desktop’, com a mobilidade da web.

Então, a minha idéia era de minha applet pegar resultsets, e jogá-los numa tabela. Então o usuário modificaria-a e as alterações seriam feitas no banco.

Será que fica melhor fazer em páginas web mesmo?

Obrigado a todos

Abraço

O

gfcittolin:
Meu objetivo é uma solução para alterar dados dinâmicos de um site, de um jeito rápido e prático. Pelo que vi, as pessoas têm mais facilidade em usar aplicações desktop (com algum visual parecido com a suíte Office, por exemplo) do que navergar por páginas da web.
Criar uma aplicação seria útil, mas seria ruim ter que baixá-la cada vez qeu fosse editar num micro diferente. Pensei que jApplets seriam uma solução viável, pois ‘oferecem os recursos de desktop’, com a mobilidade da web.

Então, a minha idéia era de minha applet pegar resultsets, e jogá-los numa tabela. Então o usuário modificaria-a e as alterações seriam feitas no banco.

Será que fica melhor fazer em páginas web mesmo?

Desculpe, mas em nenhum momento eu falei que era para criar paginas Web (HTML, JSP, etc). O que eu disse foi usar MVC e DAO. Isto não serve apenas para projetos “Web puro”. Dá para aplicar com applet. Veja o seu applet como a View, as entities como Model e o Servlet como Controller. Os componentes gráficos do applet deveriam receber e manupular entities e não ResultSets. Os servlets receberiam e enviariam as entities e a camada DAO se encarregaria de persistir os dados das entities.
Dá para usar o mesmo conceito com uma aplicação desktop (que pode ser acessada via Java Web Start) e que se comunicaria via HTTP com um servidor, usando entities.

gfcittolin

sim, sim, você não falou em páginas. É que normalmente o que se vê por aí são páginas para administração. E é o que vou usar. Ainda não tenho experiência em applets e DAO. Vou fazer a administração via web pages, que é como eu sei e vou buscar aprender ‘mais a fundo’ em outro momento.

Mesmo assim, muito obrigado pela ajuda de todos

Abraços

Criado 19 de março de 2007
Ultima resposta 21 de mar. de 2007
Respostas 9
Participantes 4