Problemas com criaçao de método

1 resposta
fscpv
galera estou com um proble nao estou conseguindo criar um método para me retornar um campo do banco o que estou fazendo errado?
public pegaNomeUser(String nome_user) throws SQLException {

        Connection conexao = con.abrirConexao();

        Statement st = null;
        ResultSet rs = null;

        try {
            st = conexao.createStatement();
            rs = st.executeQuery("Select nome_user from bdconta where login = '" + nome_user + "' ");
           
        } catch (SQLException erro) {
            System.out.println(erro);
        } finally{
            rs.close();
            st.close();
            con.fecharConexao(conexao);
        }
        return nome_user;
  }

Ja agradeço pela ajuda

1 Resposta

ViniGodoy

1. Use um PreparedStatement. Não concatene strings em suas queries, pois isso é uma falha grave de segurança (além de ser mais difícil e deixar o código porco de ler);
2. Você deve usar o método rs.getString("nome_user");
3. Você deve retornar antes de fechar o resultSet e o Statement:

public pegaNomeUser(String nome_user) throws SQLException {

        Connection conexao = con.abrirConexao();

        PreparedStatement st = null;
        ResultSet rs = null;

        try {
            st = conexao.prepareStatement("SELECT nome_user FROM bdconta WHERE login = ?");
            st.setString(1, nome_user);
            rs = st.executeQuery();
            return rs.getString("nome_user");           
        } catch (SQLException erro) {
            System.out.println(erro);
        } finally{
            rs.close();
            st.close();
            con.fecharConexao(conexao);
        }
        return null;
  }
Criado 30 de abril de 2010
Ultima resposta 30 de abr. de 2010
Respostas 1
Participantes 2