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.