Tela de Login

4 respostas
E

Alguém poderia por favor dizer o que tem de errado neste codigo por favor???

package portal;

import java.sql.ResultSet;
import com.mysql.jdbc.Statement;

public class VerificaLogin {
	
	public String getLogin(String matricula, String senha) {
		new VerificaLogin(matricula, senha);
		if(matricula == "user") {
			return "Login Correto!";
		} else {
			return "Usuário Errado";
		}	
	}
	
	public VerificaLogin(String matricula, String senha) {
		this(new ConexaoMysql());	
	}
	
	public VerificaLogin(ConexaoMysql conexaoMysql) {
		Statement state = null;
		ResultSet rs = null;

		try {
			state = (Statement) conexaoMysql.getConnection().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
			[b]rs = state.executeQuery("Select * from users where matricula = '" + matricula + "' and senha = '" + senha + "' ");[/b]
			//while(rs.next()) {
			//	System.out.println("Nome do Cliente: " + rs.getString("nome") + " Idade: " + rs.getString("matricula"));
			//	System.out.print("----------------------------------------nn");
		} catch(Exception erro) {
			System.out.println("Erro ocorrido: n" + erro);
		}
		finally {
			conexaoMysql.closeConnection();
		}
	}
}

O erro esta dando na linha em negrito porque as variáveis ‘matricula’ e ‘senha’ não foram passadas.
Como posso passa-las para o metodo VerificaLogin assim como passei para o metodo getLogin (da servlet para a classe)???

Obrigada!!!

4 Respostas

Felagund

Ellensmp:
Alguém poderia por favor dizer o que tem de errado neste codigo por favor???

package portal;

import java.sql.ResultSet;
import com.mysql.jdbc.Statement;

public class VerificaLogin {
	
	public String getLogin(String matricula, String senha) {
		new VerificaLogin(matricula, senha);
		if(matricula == "user") {
			return "Login Correto!";
		} else {
			return "Usuário Errado";
		}	
	}
	
	public VerificaLogin(String matricula, String senha) {
		this(new ConexaoMysql());	
	}
	
	public VerificaLogin(ConexaoMysql conexaoMysql) {
		Statement state = null;
		ResultSet rs = null;

		try {
			state = (Statement) conexaoMysql.getConnection().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
			[b]rs = state.executeQuery("Select * from users where matricula = '" + matricula + "' and senha = '" + senha + "' ");[/b]
			//while(rs.next()) {
			//	System.out.println("Nome do Cliente: " + rs.getString("nome") + " Idade: " + rs.getString("matricula"));
			//	System.out.print("----------------------------------------nn");
		} catch(Exception erro) {
			System.out.println("Erro ocorrido: n" + erro);
		}
		finally {
			conexaoMysql.closeConnection();
		}
	}
}

O erro esta dando na linha em negrito porque as variáveis ‘matricula’ e ‘senha’ não foram passadas.
Como posso passa-las para o metodo VerificaLogin assim como passei para o metodo getLogin (da servlet para a classe)???

Obrigada!!!

Cara evite usar coisas estaticas.

package portal;

import java.sql.ResultSet;
import com.mysql.jdbc.Statement;

public class VerificaLogin {
	private ConexaoMysql conexaoMysql;
	public boolean getLogin(String matricula, String senha) {
		Statement state = null;
		ResultSet rs = null;

		try {
			state = (Statement) conexaoMysql.getConnection().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
			[b]rs = state.executeQuery("Select * from users where matricula = '" + matricula + "' and senha = '" + senha + "' ");[/b]
			//while(rs.next()) {
			//	System.out.println("Nome do Cliente: " + rs.getString("nome") + " Idade: " + rs.getString("matricula"));
			//	System.out.print("----------------------------------------nn");
return true;
		} catch(Exception erro) {
			System.out.println("Erro ocorrido: n" + erro);
return false;
		}
		finally {
			conexaoMysql.closeConnection();
		}
	}
	
	public VerificaLogin() {
		conexaoMysql = new ConexaoMysql();	
	}
	

	}
}

Mais simples e mais pratico, do que comparar com strings.

E

Felagund,

Deu certinho, pelo menos no eclipse não deu erro.
Gostei sim da sua dica, realmente não compara e ficou bem mais limpo.

Um probleminha, quando fui executar da o seguinte erro no tomcat

[b]
HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException

portal.ConexaoMysql.closeConnection(ConexaoMysql.java:24)

portal.VerificaLogin.getLogin(VerificaLogin.java:29)

portal.Login.doPost(Login.java:36)

javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.


Apache Tomcat/5.5.27
[/b]

jrpmoraes

seu primeiro erro la em cima foi que estava comprando String com == sendo que String são objeto é nao tipo primitivos,vc pode usar .equals

Thiago_Luis
<blockquote>java.lang.NullPointerException

portal.ConexaoMysql.closeConnection(ConexaoMysql.java:24)

portal.VerificaLogin.getLogin(VerificaLogin.java:29) </blockquote>

Fala cara, blza?

Então, tem algum objeto sem referência e vc está tentando acessa-lo.
O erro está nesta linha 24 da classe ConexaoMysql no método closeConnection.
Dá uma olhada.

Abraço

Criado 12 de junho de 2009
Ultima resposta 12 de jun. de 2009
Respostas 4
Participantes 4