Java Swing Multiusuário

Saudações,

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.

O que preciso fazer?

2 curtidas

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.

    //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())){
    novojFrame tela = new novojFrame();
    tela.setVisible(true);
    dispose();   
    }else{
    JOptionPane.showMessageDialog(null, "Usuário ou Senha Inválidos!");     
    }} catch (SQLException ex) {
    JOptionPane.showMessageDialog(null, "Usuário ou Senha Inválidos!");     
    }

Eu já jogo direto no meu botão de acessar o menu, funciona tranquilo

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?

1 curtida

Olha, se o banco de dados estiver em rede, pode sim

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…

Seriam três usuários.

Mesma coisa então, o Banco de Dados continua na rede compartilhando os dados.

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…

Então eu tenho que ficar atualizando sempre para pegar as informações de tempo em tempo?

1 curtida

Sim, infelizmente eu só estou conseguindo assim. Ainda não encontrei uma alternativa de fazer a atualização automática

Complicado, mas sei que tem uma saída.

Sim, sempre tem!

Amigo, eu fui preguiçoso para achar essa solução hahhaa, mas achei rapidinho:

Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
//sua rotina de refresh…
}
}, 1000, 1000); //1 segundo

Esse timer atualizaria a aplicação sem ter que ficar clicando para atualizar!!

Entendi, eu não sei se seria uma boa prática isso, mas já é uma ótima solução!

Eu sei que não vou ter muito problema, pois são só três usuários, mas sabe como é né!?

Sim! Hahaha, boa sorte!