Sou iniciante em BD e em Java, com isso peço ajuda de vocês para o seguinte…
Preciso criar uma aplicação em Java, que quando inicializada apareca uma tela de Login e Senha… a pessoa digita esse login e dae aparece a tela inicial do programa.
A sacada é que tenho 2 tipo de Logins(Usuario comum e um super usuario que tem acesso a todas as informações), ou seja… no usuario comum so tenho acesso a algumas pocas coisas no meu banco de dados, no super usuario tenho acesso a praticamente tudo… então como faria algo desse tipo utilizando PostgreSQL.
Outra coisa, é que no meu banco de dados precisaria ter em uma determinada tabela, uma coluna que armazenasse uma data e hora… algo do tpw: 01/05/2009 - 15:00, entende?como poderia fazer isso.
MKThEbEsT, acho q o mais simples e eficiente pra vc seria criar uma estrutura com menus e dar acesso ao menus de acordo com cada usuario
tipo:
“usuario tem varios menus”
assim vc resolveria a questão do que cada um pode acessar de forma bem simples, é claro q vc pode melhorar muito essa idéia criando perfis de acessos que podem ser compartilhados e tal, mas pra iniciar acho q isso ja te ajuda.
quanto a data e hora é só vc escolher qual tabela vc quer e cria nela um campo do tipo timestamp without time zone acho q é isso, q ao grava guardaria exatamente o q vc precisa!
Quanto ao lance de criar uma tabela contendo usuario, como ficaria o lance de autenticação?
Na propria tabela colocaria a senha da pessoa cadastrada para verificar a autentiação?
Quanto ao lance de criar uma tabela contendo usuario, como ficaria o lance de autenticação?
Na propria tabela colocaria a senha da pessoa cadastrada para verificar a autentiação?
abraço a todos.[/quote]
Isso. O cara digita usuario e senha, e vc executa a seguinte query no banco:
SELECT * FROM Usuario where nome_usu = “nome que o cara digitou” AND senha_usu = “senha que o cara digitou”
Se a query não obtiver resultados, quer dizer que o cara não está cadastrado. Ou você oferece a chance de cadastrar ou simplesmente dá uma mensagem de erro.
Se a query obtiver resultado, quer dizer que o cara está lá. Utilizando a classe ResultSet, vc pegaria o tipo de usuario assim: rs.getString (“tipo_usu”).
Aí vc padroniza: se o tipo_usu for um, ele é admin do sistema senão não.
Galera, fui testar um pequeno login e senha aqui utilizando o PostgreSQL, vejam o erro.
tae o codigo.
System.out.println("Login");
x = s.nextLine();
System.out.println("Senha");
y = s.nextLine();
ResultSet rs = stm.executeQuery("SELECT login,senha FROM Usuario where login = "+x+" AND senha = "+y+"");
if(rs.next()){
System.out.println("Login valido");
}else{
System.out.println("Login INvalido");
}
System.out.println(rs);
Erro:
Exception in thread "main" org.postgresql.util.PSQLException: ERROR: column "maria" does not exist
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:336)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:235)
at Teste.main(Teste.java:26)
Só pra efeito:
No login eu digito: maria
Na senha: maria10
Que é o que coloquei como teste no meu BD na tabela Usuario.
[quote=MKThEbEsT]Galera, fui testar um pequeno login e senha aqui utilizando o PostgreSQL, vejam o erro.
tae o codigo.
System.out.println("Login");
x = s.nextLine();
System.out.println("Senha");
y = s.nextLine();
ResultSet rs = stm.executeQuery("SELECT login,senha FROM Usuario where login = "+x+" AND senha = "+y+"");
if(rs.next()){
System.out.println("Login valido");
}else{
System.out.println("Login INvalido");
}
System.out.println(rs);
Erro:
Exception in thread "main" org.postgresql.util.PSQLException: ERROR: column "maria" does not exist
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:336)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:235)
at Teste.main(Teste.java:26)
Só pra efeito:
No login eu digito: maria
Na senha: maria10
Que é o que coloquei como teste no meu BD na tabela Usuario.[/quote]
Faltou as aspas simples antes e depois do x e do y.
Assim funfa:
stm.executeQuery("SELECT login,senha FROM Usuario where login = '"+x+"' AND senha = '"+y+"'");