Atributos com valore atualizados ao abrir sistema [RESOLVIDO]
10 respostas
W
wellingtonfoz
Olá,
Queria saber como que faço pra alterar o valor de um atributo que tem um valor padrão quando é acessado.
Tipo assim. Tenho uma classe com dois atributos estáticos:
public static String loginmySQL = “root”
public static String senhamySQL = “”
Durante a execução do programa, estes valores alteram caso o usuário queira mudar esses valores. Preciso que esses valores permaneçam alterados quando fechar e abrir o programa de novo.
Quando fecho e reabro o programa os valores estão voltando a ser: loginmySQL = “root” / senhamySQL = “” e quero que sejam iniciados já com os valores que o usuário deixou anteriormente.
Como fazer isso?
Obs.: Não posso usar o banco de dados pq esses atributos são justamente login e senha de acesso ao banco de dados, entenderam??
Obrigado
É, eu tinha justamente pensado em arquivo TXT mas tava tentando achar algo mais seguro (pro usuário não abrir la e ve a senha e login).
Enfim… acabei utilizando um txt mesmo pra gravar os dados!
Bom, você precisa dar uma olhada em algum material de manipulação de memória durante a execução de um programa. Acontece basicamente que as informações são manipuladas em uma memória temporária e perdidas quando o programa é finalizado. Para manter qualquer informação, ela deve ser salva em um repositório permanente (arquivo em seu hd ou um banco de dados, por exemplo). Então você poderá “carregar” essas informações da sua fonte de dados quando restartar seu programa.
SEM SALVAR ESSES NOVOS DADOS EM ALGUM LUGAR É PRATICAMENTE IMPOSSÍVEL…
agora mesmo sendo login e senha estes atributos são gravado num banco (numa tabela de usuários…) e ai ao entrar valida pra ver se está certo!
W
wellingtonfoz
SandroSoftwares:
SEM SALVAR ESSES NOVOS DADOS EM ALGUM LUGAR É PRATICAMENTE IMPOSSÍVEL…
agora mesmo sendo login e senha estes atributos são gravado num banco (numa tabela de usuários…) e ai ao entrar valida pra ver se está certo!
Sim, mas esses atributos são usados como dados para fazer login no mysql através de uma conexão JDBC. Como que vou guardar no banco sendo que preciso de login e senha para acessar o banco e consultá-los?
Não tem como porq esses dados são justamente para ‘entrar/acessar’ o banco.
W
wellingtonfoz
dougfane:
Bom, você precisa dar uma olhada em algum material de manipulação de memória durante a execução de um programa. Acontece basicamente que as informações são manipuladas em uma memória temporária e perdidas quando o programa é finalizado. Para manter qualquer informação, ela deve ser salva em um repositório permanente (arquivo em seu hd ou um banco de dados, por exemplo). Então você poderá “carregar” essas informações da sua fonte de dados quando restartar seu programa.
Então, estava justamente pensando em gravar em um arquivo TXT, mas isso fica muito estranho. Se um cara vai lá e abre o TXT ele ve o login e senha do mysql!!! Entende!!!.
Tem algum arquivo tipo de arquivo que seja meio que criptografado? Assim ficaria visível somente ao programa e ao abrir ‘por fora’ não seja possível ver ou entender o conteúdo.
dougfane
wellingtonfoz:
SandroSoftwares:
SEM SALVAR ESSES NOVOS DADOS EM ALGUM LUGAR É PRATICAMENTE IMPOSSÍVEL…
agora mesmo sendo login e senha estes atributos são gravado num banco (numa tabela de usuários…) e ai ao entrar valida pra ver se está certo!
Sim, mas esses atributos são usados como dados para fazer login no mysql através de uma conexão JDBC. Como que vou guardar no banco sendo que preciso de login e senha para acessar o banco e consultá-los?
Não tem como porq esses dados são justamente para ‘entrar/acessar’ o banco.
Acontece que o MySQL possui níveis de acesso para usuários. Um deles é o superusuário root. Esse cara pode fazer qualquer coisa no banco. O que você tem que fazer é criar outro usuário com as devidas permissões em vez de permitir que seu aplicativo cliente acesse seu banco como root.
Criando usuários e definindo permissões (exemplo):
CREATE USER 'usuario' IDENTIFIED BY 'senha';
GRANT ALL PRIVILEGES ON *.* TO 'usuario' WITH GRANT OPTION;
Nesse caso, “usuario” terá permissão pra fazer qualquer coisa no banco assim como root.
Mas se você prefere realmente usar “root” no seu cliente, apenas implemente:
UPDATE mysql.user SET Password=PASSWORD('nova_senha') WHERE User='root';
FLUSH PRIVILEGES;
O detalhe é que seu programa não logará automaticamente quando iniciado. Se é isso que você quer, então apenas defina um valor default para login/senha no root. Afinal, se o login é automático, qual a necessidade de se criar/editar usuário/senha de acesso?
Criando usuários e definindo permissões (exemplo):
CREATE USER 'usuario' IDENTIFIED BY 'senha';
GRANT ALL PRIVILEGES ON *.* TO 'usuario' WITH GRANT OPTION;
Nesse caso, “usuario” terá permissão pra fazer qualquer coisa no banco assim como root.
Mas se você prefere realmente usar “root” no seu cliente, apenas implemente:
UPDATE mysql.user SET Password=PASSWORD('nova_senha') WHERE User='root';
FLUSH PRIVILEGES;
O detalhe é que seu programa não logará automaticamente quando iniciado. Se é isso que você quer, então apenas defina um valor default para login/senha no root. Afinal, se o login é automático, qual a necessidade de se criar/editar usuário/senha de acesso?
Então kara… mas pra fazer esse CREATE USER ou UPDATE q seja… eu tenho que estar logado obrigatóriamente, aí q está o problema.
Sei que existe um root, mas a senha não é padrão… é definida pelo usuário na instalação do mysql… por isso o problema.
Não tem como eu logar como root sem saber a senha… =(
dougfane
Bom, não tem como VOCÊ logar, mas tem como o USUÁRIO do seu aplicativo logar, afinal ele tem que saber qual senha definiu na instalação. É só implementar uma tela de login no seu programa.
dougfane
Continuando, acho que sua confusão é exatamente nisso. Essa tela de login não vai consultar no banco se login/senha estão corretos, e sim vai montar sua string de conexão com o banco.