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…
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.
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é!?