Acessando o banco MySql e Servlet

Pessoal,

Estou com o seguinte problema que eh:

Possuo dois registro no banco mas soh que o meu codigo nao encontra nenhum registro. PQ? :mad:

Connection con;
Statement stm;
ResultSet resultado = null;

String nome = solicitacao.getParameter(“textusuario”);
String senha = solicitacao.getParameter(“textsenha”);
String pesquisa = “select lgfuncionario from tableusuario”;
int func = 0;

try
{
Class.forName(“org.gjt.mm.mysql.Driver”);
con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/scadger”,“root”,"");
stm = con.createStatement();
resultado = stm.executeQuery(pesquisa);
} catch (Exception e)
{
System.out.println(e);
}

try
{
while(resultado.next())
{
if (((resultado.getString(1)).compareTo(nome) == 0) &&
((resultado.getString(1)).compareTo(senha) == 0))
{
func = resultado.getInt(3); break;
}
}
}
catch (SQLException e)
{
System.err.println(e);
}

Olá cgirardi

tenta assim:

if (((resultado.getString(1)).equalsIgnoreCase(nome) &&
((resultado.getString(2)).equalsIgnoreCase(senha)))
{
func = resultado.getInt(3); break;
}

mas o melhor seria colocar esses parametros na sua string SQL
e deixar o banco fazer a pesquisa.

Falow;

pablodrumond,

Kra eu jah tentei colocar na string SQL mas ele me o erro de syntax

ai eu tentei desta maneira mas acusa outro erro de coluna nao encontrada:
resultado.getInt(3)

PS: as colunas da tabela que eu tenho eh usuario, senha e lgfuncionario

PQ?

Olá tenta isso então:

mainResultSet = mainStatement.executeQuery(“SELECT * FROM tabela WHERE usuario = '” + usuario + '" AND senha = ‘" + senha + "’");

O resultset guarda os campos que vc selecionou na SQL,
e não todos os campos da tabela, por isso se vc escrever “SELECT lgfuncionario …”, ele só terá uma coluna, e, portanto não conseguirá achar a coluna 3.

Vc tem que fazer ou um “SELECT * …” e pegar a coluna 3,
ou um “SELECT lgfuncionario …” e pegar a coluna 1.

Entendeu?

Falow;

vou tentar fazer

Valeu.