francislon 10 de dez. de 2011
Quando você trabalha com objetos ResultSet você precisa iterá-los para ter acesso ao resultado de uma consulta. Por exemplo:
ResultSet rs = con.executeQuery("select * from algo");
//aqui vc itera pelo resultset
while(rs.next()){
String coluna1 = rs.getString("coluna1");
String coluna2 = rs.getString("coluna2");
}
//feche as conexoes
Olhando seu código eu vi dois erros. Na linha onde você cria o objeto ResultSet
ResultSet rs = com.executeQuery(vSQL);
Eu acho que deveria ser:
ResultSet rs = con.executeQuery(vSQL); //o objeto da conexao que vc criou é con e não com
O segundo erro é porquê você não iterou pelo ResultSet para recuperar o resultado. Mais ou menos assim:
funcionario f = null;
if(rs.next()){
f=new funcionario();
f.setCpf(rs.getString("cpf"));
f.setNome(rs.getString("nome"));
f.setEndereco(rs.getString("endereco"));
f.setTelefone(rs.getString("telefone"));
f.setCelular(rs.getString("celular"));
f.setData_adm(rs.getString("data_adm"));
f.setSenha(rs.getString("senha"));
f.setLogin(rs.getString("login"));
f.setAdm(rs.getBoolean("adm"));
}
return f;
braian.adans 10 de dez. de 2011
[color=darkblue]
francislon:
Quando você trabalha com objetos ResultSet você precisa iterá-los para ter acesso ao resultado de uma consulta. Por exemplo:
ResultSet rs = con.executeQuery("select * from algo");
//aqui vc itera pelo resultset
while(rs.next()){
String coluna1 = rs.getString("coluna1");
String coluna2 = rs.getString("coluna2");
}
//feche as conexoes
Olhando seu código eu vi dois erros. Na linha onde você cria o objeto ResultSet
ResultSet rs = com.executeQuery(vSQL);
Eu acho que deveria ser:
ResultSet rs = con.executeQuery(vSQL); //o objeto da conexao que vc criou é con e não com
O segundo erro é porquê você não iterou pelo ResultSet para recuperar o resultado. Mais ou menos assim:
funcionario f = null;
if(rs.next()){
f=new funcionario();
f.setCpf(rs.getString("cpf"));
f.setNome(rs.getString("nome"));
f.setEndereco(rs.getString("endereco"));
f.setTelefone(rs.getString("telefone"));
f.setCelular(rs.getString("celular"));
f.setData_adm(rs.getString("data_adm"));
f.setSenha(rs.getString("senha"));
f.setLogin(rs.getString("login"));
f.setAdm(rs.getBoolean("adm"));
}
return f;
[/color][color=#444444] [/color]
poderia me dar uma idéia de como ficaria o código completo?
não consegui identificar onde eu passaria o parâmetro para a query..
vlw...
wbdsjunior 11 de dez. de 2011
braian.adans:
poderia me dar uma idéia de como ficaria o código completo?
não consegui identificar onde eu passaria o parâmetro para a query…
vlw…
alé do que o amigo francislon disse, você inverteu a ordem da passagem de pâmetros e da execução do statment .
public funcionario Autentica(String login,String senha) throws SQLException, ClassNotFoundException {
Connection con = ConnectionFactory.getConnectionMySql();;
String vSQL = "select * fron funcionario where login = ? and senha = ?";
PreparedStatement com = con.prepareStatement(vSQL);
com.setString(1, login);
com.setString(2, senha);
ResultSet rs = com.executeQuery();
// ...
}
a documentação é sua amiga… PreparedStatement .
braian.adans 11 de dez. de 2011
wbdsjunior:
braian.adans:
poderia me dar uma idéia de como ficaria o código completo?
não consegui identificar onde eu passaria o parâmetro para a query…
vlw…
alé do que o amigo francislon disse, você inverteu a ordem da passagem de pâmetros e da execução do statment .
public funcionario Autentica(String login,String senha) throws SQLException, ClassNotFoundException {
Connection con = ConnectionFactory.getConnectionMySql();;
String vSQL = "select * fron funcionario where login = ? and senha = ?";
PreparedStatement com = con.prepareStatement(vSQL);
com.setString(1, login);
com.setString(2, senha);
ResultSet rs = com.executeQuery();
// ...
}
a documentação é sua amiga… PreparedStatement .
Ouw… ou eu sou muito burro…hushsuhsu
Ou o NetBeans tá conspirando contra mim…kkk
o código ficaria assim?
Não está funcionando…
public funcionario Autentica ( String login , String senha ) throws SQLException , ClassNotFoundException {
Connection con = ConnectionFactory . getConnectionMySql ();
String vSQL = “ select * from funcionario where login =? and senha =? ” ;
PreparedStatement com = ( PreparedStatement ) con . prepareStatement ( vSQL );
com . setString ( 1 , login );
com . setString ( 2 , senha );
ResultSet rs = com . executeQuery ();
funcionario f = new funcionario ();
f . setCpf ( rs . getString ( "cpf" ));
f . setNome ( rs . getString ( "nome" ));
f . setEndereco ( rs . getString ( "endereco" ));
f . setTelefone ( rs . getString ( "telefone" ));
f . setCelular ( rs . getString ( "celular" ));
f . setData_adm ( rs . getString ( "data_adm" ));
f . setSenha ( rs . getString ( "senha" ));
f . setLogin ( rs . getString ( "login" ));
f . setAdm ( rs . getBoolean ( "adm" ));
return f ;
}
wbdsjunior 12 de dez. de 2011
faltou um rs.next():
public funcionario Autentica(String login,String senha) throws SQLException, ClassNotFoundException {
Connection con = ConnectionFactory.getConnectionMySql();
String vSQL = "select * from funcionario where login =? and senha =?";
PreparedStatement com = (PreparedStatement) con.prepareStatement(vSQL);
com.setString(1, login);
com.setString(2, senha);
ResultSet rs = com.executeQuery();
funcionario f = null;
if (rs.next()) {
f = new funcionario();
f.setCpf(rs.getString("cpf"));
f.setNome(rs.getString("nome"));
f.setEndereco(rs.getString("endereco"));
f.setTelefone(rs.getString("telefone"));
f.setCelular(rs.getString("celular"));
f.setData_adm(rs.getString("data_adm"));
f.setSenha(rs.getString("senha"));
f.setLogin(rs.getString("login"));
f.setAdm(rs.getBoolean("adm"));
}
return f;
}
outra dica é: sempre que postar o código, coloque-o entre tag
code .
braian.adans 13 de dez. de 2011
Pessoal muito obrigado pela ajuda…
Deu certinho…
Vlw Mesmo…