Estou trabalhando em uma aplicação Desktop e preciso muito que ela seja multiusuário, e não sei como fazer, estou utilizando o padrão MVC e JDBC, a aplicação é para controle de estoque e mais de um usuário vai utilizar.
Vai precisar de um banco de dados, depois de tê-lo, você cria uma tabela, de preferência com o nome “login”, nessa tabela você adiciona as colunas “id” “nome” e “senha” (sem as aspas)…
Feito isso, você vai pra o seu IDE e conecta com o banco de dados. Eu costumo usar a comboBox, que é pra o usuário não ficar digitando o nome e tal. Mas você pode usar um jTextField normal.
rodriguesabner
//jTextField1(usuario), jTextField2(senha) try{conecta.executaSQL("SELECT * FROM tabela WHERE nome= '"+jTextField1.getText()+"'");conecta.rs.first();if(conecta.rs.getString("senha").equals(jTextField2.getText())){novojFrametela=newnovojFrame();tela.setVisible(true);dispose();}else{JOptionPane.showMessageDialog(null,"Usuário ou Senha Inválidos!");}}catch(SQLExceptionex){JOptionPane.showMessageDialog(null,"Usuário ou Senha Inválidos!");}
Eu já jogo direto no meu botão de acessar o menu, funciona tranquilo
Matheus_Henrique21 like
Não é bem isso Abner, será que se um usuário cadastrar um produto, e o outro que estiver visualizando os itens do estoque, ele vai poder ver os itens atualizados?
rodriguesabner
Olha, se o banco de dados estiver em rede, pode sim
rodriguesabner
Pq seria um banco de dados pra 30 computadores, entende? Todos receberiam o mesmo update.
No caso você não quer vários usuários, quer um só, correto? Aí faria por exemplo o usuário Matheus Henrique, e todos acessariam sua conta, e todos receberiam o cadastro que você fizesse no momento que apertasse no botão cadastrar…
Matheus_Henrique2
Seriam três usuários.
rodriguesabner
Mesma coisa então, o Banco de Dados continua na rede compartilhando os dados.
rodriguesabner
A única coisa que seria um problema, mas que nem chega a ser um, é o usuário logado em outra máquina ter que apertar o botão de sincronizar. Por enquanto eu só consigo fazer o update de tudo dando um sync manualmente…
Matheus_Henrique21 like
Então eu tenho que ficar atualizando sempre para pegar as informações de tempo em tempo?
rodriguesabner
Sim, infelizmente eu só estou conseguindo assim. Ainda não encontrei uma alternativa de fazer a atualização automática
Matheus_Henrique2
Complicado, mas sei que tem uma saída.
rodriguesabner
Sim, sempre tem!
Solucao aceita
rodriguesabner
Amigo, eu fui preguiçoso para achar essa solução hahhaa, mas achei rapidinho:
Timertimer=newTimer();timer.schedule(newTimerTask(){publicvoidrun(){//sua rotina de refresh…}},1000,1000);//1 segundo
Esse timer atualizaria a aplicação sem ter que ficar clicando para atualizar!!
Matheus_Henrique2
Entendi, eu não sei se seria uma boa prática isso, mas já é uma ótima solução!
Matheus_Henrique2
Eu sei que não vou ter muito problema, pois são só três usuários, mas sabe como é né!?