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?
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
thingol
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
oyama
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
oyama
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.