Erro em Consulta a Banco de DADOS com JAVA

1. Erro em Consulta a Banco de DADOS com JAVA

ElisaMariaAlves
TheUser

(usa Ubuntu)

Enviado em 17/08/2017 - 07:30h





Estou recebendo um erro no NetBeans ao fazer uma consulta em um banco de dados do SQL que valida o login do usuario a partir do e-mail e pede senha:


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SqlUsuarios extends Coneccao {

public boolean registrar(Usuarios usr) throws SQLException {
PreparedStatement ps = null;
Connection con = getConeccao();

String sql = "INSERT INTO usuarios (nome, email, password, id_tipo) VALUES (?,?,?,?)";
try {
ps = con.prepareStatement(sql);
ps.setString(1, usr.getNome());
ps.setString(2, usr.getEmail());
ps.setString(3, usr.getPassword());
ps.setInt(4, usr.getId_tipo());
ps.execute();
return true;

} catch (SQLException ex) {
Logger.getLogger(SqlUsuarios.class.getName()).log(Level.SEVERE, null, ex);
};
return false;
}

public boolean login(Usuarios usr) throws SQLException {
PreparedStatement ps = null;
ResultSet rs = null;
Connection con = getConeccao();

String sql = "SELECT nome, email, password, id_tipo, FROM usuarios WHERE email like ? ";
try {
ps = con.prepareStatement(sql);
ps.setString(2, usr.getEmail()); // ifnot put '3'
rs = ps.executeQuery();

if (rs.next())
{
if (usr.getPassword().equals(rs.getString(3))) //4º elemento na linha ...= "SELECT id, nome, email, password, id_tipo, FROM ...
{
//posições na linha está no numero.


usr.setNome(rs.getString(1));
usr.setId_tipo(rs.getInt(4));
return true;
}
else
{
return false;
}

}
return false;

} catch (SQLException ex) {
Logger.getLogger(SqlUsuarios.class.getName()).log(Level.SEVERE, null, ex);
return false;
}

}




O seguinte erro contiuna aparecendo:


java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1).



  


2. Re: Erro em Consulta a Banco de DADOS com JAVA

Felipe
nctfelipe

(usa Debian)

Enviado em 17/08/2017 - 08:54h

String sql = "SELECT nome, email, password, id_tipo, FROM usuarios WHERE email like ? ";
try {
ps = con.prepareStatement(sql);
ps.setString(2, usr.getEmail()); // ifnot put '3'

Nesse trecho de código o index do parâmetro está incorreto, o certo seria
            ps.setString(1, usr.getEmail()); 



3. Re: Erro em Consulta a Banco de DADOS com JAVA

Felipe
nctfelipe

(usa Debian)

Enviado em 17/08/2017 - 08:59h

Que coincidência, logo após responder seu pergunta fui dar uma olhada no Stackoverflow o.O

https://pt.stackoverflow.com/questions/229806/erro-ao-fazer-consulta-de-email-no-banco


4. Re: Erro em Consulta a Banco de DADOS com JAVA

ElisaMariaAlves
TheUser

(usa Ubuntu)

Enviado em 17/08/2017 - 09:00h

A pergunta do Stackoverflow também é do meu programa! :D Mas obrigado pela ajuda, funcionou agora!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts