Sou novata com java e estou desenvolvendo um projeto simples porém me deparei com um problema relacionado a conexão do banco de dados.
Preciso que minha aplicação acesse o banco de dados utilizando o " usuário e senha" do banco de dados
porém o login e a senha que o usuário digitar na tela de login será validada por uma função .
Sou novata com java e estou desenvolvendo um projeto simples porém me deparei com um problema relacionado a conexão do banco de dados.
Preciso que minha aplicação acesse o banco de dados utilizando o " usuário e senha" do banco de dados
porém o login e a senha que o usuário digitar na tela de login será validada por uma função .
Como faria isso?
vc entende que existe uma diferenca entre premissões de acesso a um sistema e permissão de acesso ao banco de dados?
Essa é a forma mais comum, pra quem está começando:
o username e password do banco de dados “apenas sua aplicação pode saber”. se não, a aplicação não consegue se conectar ao banco de dados. Isso é a “nível” de servidor, caso seja web.
Assim que sua aplicação adquire a conexão, através dela, seu sistema compara o login e a senha registrados no bd com o enviado pelo usuário. se o usuário e senha existem dentro do seu sistema, então ele tem acesso. Se não joga a mensagem dizendo que tal usuário não existe ou que a senha é inválida.
S
sarah_nile
é exatamente isso que qro fazer, só que não sei como.
Poderia me mostrar um exemplo de um classe fazendo essa validação?
O que estava fazendo era criando o usuário de banco de dados e dando acesso a eles, e sei que errado pq assim qualquer usuário que instalar uma ferramenta de bd na maquina e conectar ao banco de dados terá acesso as tabelas e não quero que seja assim.
Desde de já agradeço muito.
RodrigoKaos
[i]Vc pode resgatar uma lista de usuarios da db e comparar o login q o usuario digitou.
Ou resgar tentar resgatar o usuario diretamente pelo login, e caso exista compara a senha
Quando eu tava aprendendo eu resgatava uma lista de usuarios.
Usando for comparava o login digitado com os logins da lista.
Nesse ponto eu errava, pq n interrompia o loop dps q o login fosse encontrado, por isso perdia tempo olhando tds os logins msm dps de achar o correto
Em seguida compara a senha.
Basicamente é isso
[/i]
S
sarah_nile
Estou usando este código.
Onde eu alteraria para solucionar este problema?
/** Método desenvolvido para retornar um objeto do tipo Connection
* @param usuario
* @param senha
* @param host
* @return Connection
* @see java.sql.Connection **/
publicstaticConnectionconexao(Stringuser,Stringpass,Stringhost){try{DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());connection=DriverManager.getConnection(SistemaProps.getUrl(host),user,pass);}catch(Exceptione){connection=null;Tratamentos.tratamentos(e);}returnconnection;}/** Método cria uma conexao com o banco de dados */publicstaticvoidmakeConnection(){try{DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());connection=DriverManager.getConnection(SistemaProps.getUrl(host),user,pass);}catch(Exceptionex){connection=null;Tratamentos.tratamentos(ex);}}/** Método retorna um objeto do tipo Connection * @return Connection */publicstaticConnectiongetConnection(){returnconnection;}/** Método seta o usuário passado como parametro * @param usuario **/publicstaticvoidsetUser(Stringu){user=u;}/** Método seta a senha passada como parametro * @param senha **/publicstaticvoidsetPass(Stringp){pass=p;}/** Método seta o host passado como parâmetro * @param host */publicstaticvoidsetHost(Stringh){host=h;}/** Método retorna o usuário logado no banco * @return usuario **/publicstaticStringgetUser(){returnuser;}/** Método retorna senha * @return senha **/publicstaticStringgetPass(){returnpass;}/** Método retorna o host * @return host **/publicstaticStringgetHost(){returnhost;}/** Método desenvolvido para liberar a conexão, desconectar o user **/publicstaticvoidshutDown(){try{if(!connection.isClosed()&&connection!=null){connection.close();connection=null;}}catch(Exceptione){Tratamentos.tratamentos(e);}}staticStringuser="";staticStringpass="";staticStringhost="";staticConnectionconnection=null;
}[/size]
RodrigoKaos
Usa a tag CODE quando postar codigo, é só selecionar td o teu codigo e clicar no botão code
Vc pode criar algum tipo de view, q passa o login e a senha digitada pra esse objeto, n tem muito segredo
S
sarah_nile
Pronto.
Poderia me ajudar? :'(
tem skype?
importjava.sql.*;publicclassConexao{/** Creates a new instance of Conexao */publicConexao(Stringuser,Stringpass,Stringhost){this.user=user;this.pass=pass;this.host=host.toUpperCase();}/** Método desenvolvido para retornar um objeto do tipo Connection* @param usuario* @param senha* @param host* @return Connection* @see java.sql.Connection **/publicstaticConnectionconexao(Stringuser,Stringpass,Stringhost){try{DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());connection=DriverManager.getConnection(SistemaProps.getUrl(host),user,pass);}catch(Exceptione){connection=null;Tratamentos.tratamentos(e);}returnconnection;}/** Método cria uma conexao com o banco de dados */publicstaticvoidmakeConnection(){try{DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());connection=DriverManager.getConnection(SistemaProps.getUrl(host),user,pass);}catch(Exceptionex){connection=null;Tratamentos.tratamentos(ex);}}/** Método retorna um objeto do tipo Connection* @return Connection */publicstaticConnectiongetConnection(){returnconnection;}/** Método seta o usuário passado como parametro* @param usuario **/publicstaticvoidsetUser(Stringu){user=u;}/** Método seta a senha passada como parametro* @param senha **/publicstaticvoidsetPass(Stringp){pass=p;}/** Método seta o host passado como parâmetro* @param host */publicstaticvoidsetHost(Stringh){host=h;}/** Método retorna o usuário logado no banco* @return usuario **/publicstaticStringgetUser(){returnuser;}/** Método retorna senha* @return senha **/publicstaticStringgetPass(){returnpass;}/** Método retorna o host* @return host **/publicstaticStringgetHost(){returnhost;}/** Método desenvolvido para liberar a conexão, desconectar o user **/publicstaticvoidshutDown(){try{if(!connection.isClosed()&&connection!=null){connection.close();connection=null;}}catch(Exceptione){Tratamentos.tratamentos(e);}}staticStringuser="";staticStringpass="";staticStringhost="";staticConnectionconnection=null;}
RodrigoKaos
//Mero exemplo//Campos de uma view de um app desktoppublicTxtFielduser;publicTxtFieldpass;publicTxtFieldurl;//Uma combobox seria mais util :vConexão.conect(url.getText(),user.getText(),pass.getText());