Retorno de método BOOLEAN

Pessoal estou vacilando em uma coisa aparentemente boba, tenho um método que verifca se um login existe no banco (esse metodo retorna um boolean).

[code]
public boolean verificarSeJaExisteBD(String username){
boolean result = false;
try{
String sql = “Select username from user where username = ?”;
PreparedStatement psmt = this.con.prepareStatement(sql);

		psmt.setString(1, username);
		ResultSet rs = psmt.executeQuery();
		result = rs.next();
		con.close();
		rs.close();
		psmt.close();
		
	}catch (SQLException e) {
		e.getMessage();
		System.out.println(result);
	}
	System.out.println(result);
	return result;
}[/code]

Não estou conseguindo utilizar o retorno dele “return result”, pq se for TRUE eu gravo os dados no banco senão direciono para o uma página de erro.

public void execute(HttpServletRequest request, HttpServletResponse response) {
		try{
		if(!"cadastrarUsuario".equals(request.getParameter("funcao"))){
			request.getRequestDispatcher("inserirUsuario.jsp").forward(request,response);
		}else{
			String fullName = request.getParameter("fullName");
			String username = request.getParameter("username");
			String password = request.getParameter("password");
			String role = request.getParameter("role");
			
			this.verificarSeJaExiste(username);
//É A PARTIR DAQUI QUE NÃO CONSIGO DESENROLAR COM O RETORNO DO MÉTODO. 
AQUI PASSO O PARÂMETRO "USERNAME" mas daí pra frente...
			
boolean result = false; 
			if ( this.verificarSeJaExiste(result) == true){
				this.inserirUsuario(fullName, username, password, role);
				System.out.println(fullName);
				System.out.println(username);
				System.out.println(password);
				System.out.println(role);
				request.getRequestDispatcher("cadOK.jsp").forward(request,response);
			}else {
				response.sendRedirect("erroCadastro.jsp");
			}
		}
		}catch (Exception e) {
			e.printStackTrace();
		}
		
	}

Também utilizo um gerente que instancia o gerente de persistência

public boolean verificarSeJaExiste(String username){ GerLoginBd ger = new GerLoginBd(); return ger.verificarSeJaExisteBD(username); }

Valeu pessoal.
1 abraço,
Jesley.Sena
:shock:

if ( this.verificarSeJaExiste(result) == true){

A sua função verificarSeJaExiste recebe uma string como parametro … veja o seu codigo. A variavel result que voce esta passando como parametro é do tipo boolean, tente passar um parametro em string. Da forma que esta descrito no codigo a sua classe verificarSeJaExiste deve verificar se existe algum username entao passe o nome do username para que sua classe possa verificar. Deu para entender?

if ( this.verificarSeJaExiste("João") == true){

ou

String username = request.getParameter("username");
if ( this.verificarSeJaExiste(username) == true){

boolean result = false; if ( this.verificarSeJaExiste(result) == true){
Esse trecho de código funcionou???

Não funcionou!!!
Nem tentando assim:
if ( this.verificarSeJaExiste(“true”) == true){

Valeu pessoal!!

O parametro da função verificarSeJaExiste é o username, quando você chama ela na condição If, não está passando o parametro certo.

Tente isso:

[quote].
String role = request.getParameter(“role”);
.
if (this.verificarSeJaExiste(username) == true){
this.inserirUsuario(fullName, username, password, role);[/quote]

Beleza galera funcionou, ficou assim

this.verificarSeJaExiste(username); if (this.verificarSeJaExiste(username)== false){ this.inserirUsuario(fullName, username, password, role); request.getRequestDispatcher("cadOK.jsp").forward(request,response); } else{ response.sendRedirect("erroCadastro.jsp"); }

1 grande abraço,
Jesley.Sena
:shock:

[quote=jesley.sena]Pessoal estou vacilando em uma coisa aparentemente boba, tenho um método que verifca se um login existe no banco (esse metodo retorna um boolean).

[code]
public boolean verificarSeJaExisteBD(String username){
boolean result = false;
try{
String sql = “Select username from user where username = ?”;
PreparedStatement psmt = this.con.prepareStatement(sql);

		psmt.setString(1, username);
		ResultSet rs = psmt.executeQuery();
		result = rs.next();
		con.close();
		rs.close();
		psmt.close();
		
	}catch (SQLException e) {
		e.getMessage();
		System.out.println(result);
	}
	System.out.println(result);
	return result;
}[/code]

Não estou conseguindo utilizar o retorno dele “return result”, pq se for TRUE eu gravo os dados no banco senão direciono para o uma página de erro.

public void execute(HttpServletRequest request, HttpServletResponse response) {
		try{
		if(!"cadastrarUsuario".equals(request.getParameter("funcao"))){
			request.getRequestDispatcher("inserirUsuario.jsp").forward(request,response);
		}else{
			String fullName = request.getParameter("fullName");
			String username = request.getParameter("username");
			String password = request.getParameter("password");
			String role = request.getParameter("role");
			
			this.verificarSeJaExiste(username);
//É A PARTIR DAQUI QUE NÃO CONSIGO DESENROLAR COM O RETORNO DO MÉTODO. 
AQUI PASSO O PARÂMETRO "USERNAME" mas daí pra frente...
			
boolean result = false; 
			if ( this.verificarSeJaExiste(result) == true){
				this.inserirUsuario(fullName, username, password, role);
				System.out.println(fullName);
				System.out.println(username);
				System.out.println(password);
				System.out.println(role);
				request.getRequestDispatcher("cadOK.jsp").forward(request,response);
			}else {
				response.sendRedirect("erroCadastro.jsp");
			}
		}
		}catch (Exception e) {
			e.printStackTrace();
		}
		
	}

Também utilizo um gerente que instancia o gerente de persistência

public boolean verificarSeJaExiste(String username){ GerLoginBd ger = new GerLoginBd(); return ger.verificarSeJaExisteBD(username); }

Valeu pessoal.
1 abraço,
Jesley.Sena
:shock: [/quote]

Ohh cumpadi, leia com atenção o que eu disse na minha resposta :).

Você esta querendo passar um valor booleano como parametro para sua classe sendo que ela recebe é uma String…Atenção voce deve passar é o nome do usuario para ele verificar!!!

  • Pegue o usuario.
  • Passe o usuario como paremetro.